如何压缩MapReduce的输出?
How to compress the output of MapReducer?
这是我关于 MapReduce 的新问题。
我们知道Map/Reduce输出存储在HDFS本身,所以为了节省磁盘space我们可以压缩最终输出并存储它。
我们是否有任何内置函数或方法来压缩 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 \
来自Driverclass
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");
这是我关于 MapReduce 的新问题。
我们知道Map/Reduce输出存储在HDFS本身,所以为了节省磁盘space我们可以压缩最终输出并存储它。
我们是否有任何内置函数或方法来压缩 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 \
来自Driverclass
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");