以下适用于 Hadoop v1.0.0:
这将产生一个 gzipped 输出:
hadoop jar /home/user/hadoop/path_to_jar/hadoop-streaming-1.0.0.jar \
-D mapred.output.compress=true \
-D mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec \
-D mapreduce.job.reduces=0 \
-mapper /bin/cat \
-input /user/hadoop/test/input/test.txt \
-output /user/hadoop/test/output
一个块压缩的 SequenceFile 作为输出:
hadoop jar /home/user/hadoop/path_to_jar/hadoop-streaming-1.0.0.jar \
-D mapred.output.compress=true \
-D mapred.output.compression.type=BLOCK \
-D mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec \
-D mapreduce.job.reduces=0 \
-mapper /bin/cat \
-input /user/hadoop/test/input/test.txt \
-output /user/hadoop/test/output
-outputformat org.apache.hadoop.mapred.SequenceFileOutputFormat
请注意参数的顺序以及-D 和属性名称之间的空格。
在 YARN 的情况下,许多属性已被弃用(请参阅此处的完整列表)。因此,您必须进行以下更改:
mapred.output.compress -> mapreduce.output.fileoutputformat.compress mapred.output.compression.codec -> mapreduce.output.fileoutputformat.compress.codec mapred.output.compression.type -> mapreduce.output.fileoutputformat.compress.type