hadoop流媒体生成未压缩的文件,尽管mapred.output.compress=true
我运行的hadoop流媒体作业如下:hadoop流媒体生成未压缩的文件,尽管mapred.output.compress=true,hadoop,hadoop-streaming,Hadoop,Hadoop Streaming,我运行的hadoop流媒体作业如下: 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
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
part-00012
没有压缩购买力平价。我想我可以做16次hadoop fs-get,
gzip
,hadoop fs-put
,hadoop fs-rm
,但这似乎是一种非常非hadoop的方式。mapred.output.compres参数中有一个输入错误。如果你仔细看看你的工作经历,我敢打赌它已经关闭了
此外,您还可以避免将reduce阶段放在一起,因为这只是处理文件。除非您特别需要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"