복붙노트

[HADOOP] 하둡 스트리밍 mapred.output.compress에도 불구하고 압축 파일을 생성 = TRUE

HADOOP

하둡 스트리밍 mapred.output.compress에도 불구하고 압축 파일을 생성 = TRUE

나는이 같은 하둡 스트리밍 작업을 실행 :

hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-streaming.jar 
       -Dmapred.reduce.tasks=16
       -Dmapred.output.compres=true
       -Dmapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec
       -input foo
       -output bar
       -mapper "python zot.py"
       -reducer /bin/cat

나는 정확한 데이터가 포함 된 출력 디렉토리에 16 개 파일을받을 수 있나요하지만, 파일은 압축되지 않습니다 :

$ hadoop fs -get bar/part-00012
$ file part-00012
part-00012: ASCII text, with very long lines

추신. 도 참조 "감속기로 GZIP을 사용하여 손상된 데이터를 생성"

PPS. 이 폭스 바겐을위한 것입니다.

PPPS. 내가 하둡 FS의 -get, GZIP, 하둡 FS의 거려 하둡 FS -rm 16 번을 할 수있는 생각하지만, 이것은 매우 비 hadoopic 방법처럼 보인다.

해결법

  1. ==============================

    1.당신의 mapred.output.compres 매개 변수에 오타가 있습니다. 당신이 당신의 작업 기록을 통해 보면 나는 그것이 꺼져 내기 할 것이다.

    당신의 mapred.output.compres 매개 변수에 오타가 있습니다. 당신이 당신의 작업 기록을 통해 보면 나는 그것이 꺼져 내기 할 것이다.

    또한 당신은 축소 단계를 모두 함께, 그건 그냥 파일을 catting 이후 것을 방지 할 수있다. 특별히 16 개 일부 파일이 필요하지 않는 한, 그것은 전용지도를 떠나보십시오.

        hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-streaming.jar 
       -Dmapred.reduce.tasks=0
       -Dmapred.output.compress=true
       -Dmapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec
       -input foo
       -output bar
       -mapper "python zot.py"
    
  2. from https://stackoverflow.com/questions/23767799/hadoop-streaming-produces-uncompressed-files-despite-mapred-output-compress-true by cc-by-sa and MIT license