mapreduce压缩
这是mr的一种优化策略,通过压缩编码对mapper或者reducer的输出进行压缩,以减少磁盘io,提高mr运行速度(但也增加了cpu运算负担)
特性:
1.mr支持将map输出的结果或者reduce输出的结果进行压缩,以减少网络IO或最终输出数据的体积
2.压缩特性使用得当能提高性能,但运用不当也可降低性能
3.基本原则:运算密集型的job,少用压缩 io密集型的job,多用压缩
mapper输出压缩
在配置参数或在代码中都可以设置reduce的输出压缩
1.在配置参数中设置
mapreduce.map.output.compress = false
mapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.DefaultCode.class
2.在代码中设置:
conf.setBoolean("mapred.compress.map.output'',true);
conf.setClass("mapred.map.output.compression.code",DefaultCodec.class,CompressionCodec.class);