[HADOOP] 하둡 : 같은 작업에서 다른 형식을 출력하는 방법?
HADOOP하둡 : 같은 작업에서 다른 형식을 출력하는 방법?
한 작업에서 gzip 및 lzo 형식을 동시에 출력하고 싶습니다.
MultipleOutputs를 사용하고 다음과 같이 두 개의 명명 된 출력을 추가합니다.
MultipleOutputs.addNamedOutput (작업, "LzoOutput", GBKTextOutputFormat.class, Text.class, Text.class);
GBKTextOutputFormat.setOutputCompressorClass (작업, LzoCodec.class);
MultipleOutputs.addNamedOutput (작업, "GzOutput", TextOutputFormat.class, Text.class, Text.class);
TextOutputFormat.setOutputCompressorClass (작업, GzipCodec.class);
(GBKTextOutputFormat은 FileOutputFormat을 확장하는 자체 작성)
그들은 다음과 같은 감속기에서 사용됩니다 :
multipleOutputs.write ( "LzoOutput", NullWritable.get (), 값, "/ user / hadoop / lzo /"+ key.toString ());
multipleOutputs.write ( "GzOutput", NullWritable.get (), 값, "/ user / hadoop / gzip /"+ key.toString ());
결과는 다음과 같습니다.
두 경로로 출력을 얻을 수 있지만 둘 다 gzip 형식입니다.
누군가 나를 도울 수 있습니까? 감사!
==========================================================================
더:
방금 FileOutputFormat에서 setOutputCompressorClass의 소스 코드를 살펴 보았습니다. 여기서 conf.setClass ( "mapred.output.compression.codec", codecClass, CompressionCodec.class);
setOutputCompressorClass가 호출되면 구성의 mapred.output.compression.codec가 재설정되는 것으로 보입니다.
따라서 실제 압축 형식은 마지막에 설정 한 형식이므로 동일한 작업에서 서로 다른 두 가지 압축 형식을 설정할 수 없습니까? 아니면 다른 것이 무시됩니까?
해결법
-
==============================
1.따라서 해결 방법으로 구성에서 직접 올바른 outputCompressorClass를 설정하십시오.
따라서 해결 방법으로 구성에서 직접 올바른 outputCompressorClass를 설정하십시오.
context.getConfiguration().setOutputCompressorClass(GzipCodec.class);
각 출력에 대한 쓰기 호출 직전에. 키 클래스, 값 클래스 및 출력 경로 이외의 출력 형식 구성 매개 변수가 MultipleOutputs에서 제대로 처리되지 않는 것처럼 보이므로 감독을 상쇄하기 위해 약간의 코드를 작성해야 할 수도 있습니다.
from https://stackoverflow.com/questions/12953010/hadoop-how-to-output-different-format-types-in-the-same-job by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] CSV 파일의 문자열에 큰 따옴표와 함께 하이브 테이블에 삽입 된 값 (0) | 2019.08.10 |
---|---|
[HADOOP] Hive 오류 : 기본 오류 : org.apache.hadoop.hive.ql.exec.UDFArgumentTypeException : 하나 이상의 인수가 필요합니다 (0) | 2019.08.10 |
[HADOOP] Hive 쿼리에 대해 빈 .deflate 파일을 생성하지 않으려면 어떻게해야합니까? (0) | 2019.08.10 |
[HADOOP] 노드 수를 늘리더라도 Spark CSV 읽기 속도가 매우 느립니다. (0) | 2019.08.10 |
[HADOOP] Scala (또는 Java)에서 HBase 액세스를위한 화상 대체 (0) | 2019.08.10 |