0
這是我關於MapReduce的新問題。如何壓縮MapReducer的輸出?
正如我們所知Map/Reduce Output存儲在HDFS本身,所以爲了節省磁盤空間,我們可以壓縮最終的輸出並存儲它。
我們是否有任何內置函數或方法來壓縮O/P並存儲在HDFS中。
這是我關於MapReduce的新問題。如何壓縮MapReducer的輸出?
正如我們所知Map/Reduce Output存儲在HDFS本身,所以爲了節省磁盤空間,我們可以壓縮最終的輸出並存儲它。
我們是否有任何內置函數或方法來壓縮O/P並存儲在HDFS中。
有壓縮mapreduce輸出以及中間輸出的選項。
假設您需要壓縮gzip格式的最終輸出,您可以通過以下任何方式提及相同的內容。
在運行jar命令
hadoop jar <yourjar.jar> \
-Dmapred.output.compress=true \
-Dmapred.output.compression.type=BLOCK \
-Dmapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec \
-input <input-path> \
-output $OUTPUT \
從Driver類
FileOutputFormat.setOutputCompressorClass(job, org.apache.hadoop.io.compress.GzipCodec.class);
通過設置配置參數
MRv1
conf.set("mapred.output.compress", "true");
conf.set("mapred.output.compression.type", "BLOCK");
conf.set("mapred.output.compression.codec","org.apache.hadoop.io.compress.GzipCodec");
MRv2/YARN
conf.set("mapreduce.output.fileoutputformat.compress", "true");
conf.set("mapreduce.output.fileoutputformat.compress.type", "BLOCK");
conf.set("mapreduce.output.fileoutputformat.compress.codec","org.apache.hadoop.io.compress.GzipCodec");