Java Hadoop:使用MapReduce流压缩文件,我可以控制输出部分的顺序吗?
我正在尝试使用BZip2压缩HDFS上的文件。根据以下帖子的回答,使用MapReduce流媒体似乎是一个不错的方法: 该帖子中的相关代码示例为:Java Hadoop:使用MapReduce流压缩文件,我可以控制输出部分的顺序吗?,java,hadoop,Java,Hadoop,我正在尝试使用BZip2压缩HDFS上的文件。根据以下帖子的回答,使用MapReduce流媒体似乎是一个不错的方法: 该帖子中的相关代码示例为: hadoop jar contrib/streaming/hadoop-streaming-1.0.3.jar \ -Dmapred.reduce.tasks=0 \ -Dmapred.output.compress=true \ -Dmapred.compress.ma
hadoop jar contrib/streaming/hadoop-streaming-1.0.3.jar \
-Dmapred.reduce.tasks=0 \
-Dmapred.output.compress=true \
-Dmapred.compress.map.output=true \
-Dmapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec \
-input filename \
-output /filename \
-mapper /bin/cat \
-inputformat org.apache.hadoop.mapred.TextInputFormat \
-outputformat org.apache.hadoop.mapred.TextOutputFormat
hadoop fs -cat /path/part* | hadoop fs -put - /path/compressed.gz
在实践中,我为BZip2做了与上述相同的工作,使用Java Hadoop流API,并使用ToolRunner从非集群机器调用集群上的流作业
这种方法的重要特点是: