在MapReduce的各阶段过程中,根据场景开启不同类型的压缩,可以有效提升Job的处理时间;
MR使用压缩的各个阶段:
压缩可以在 MapReduce 作用的任意阶段启用,通过压缩可以有效降低Job的处理时间;
从上图可以总结为如下内容:
1.从原始数据到Map阶段;需要可切分的Splitable,以便于启动多个线程加速任务
2.Map阶段落地过程;因为需要马上进行Reduce,所以讲求的是Speed,所以越快越好
3.Reduce阶段是分结果的:
归档需求:建议采用高压缩比的工具,归档后节省磁盘空间;
作为下一个任务的输入:要采用Splitable,如果不切片的话下一个MapReduce将只有一个task来处理任务
压缩工具特点对比:
压缩性能比较:
通过上图,可以根据不同的阶段,选项不同的压缩工具;
在选项压缩工具时,针对不同的阶段,可以从3个方面选择对应压缩工具:压缩比、压缩速度、是否分片
关于压缩Hadoop引入的编码器:
Hadoop关于压缩参数的配置:
core-site.xml相关的配置:io.compression.codecs -> 配置支持哪些压缩格式,多种压缩格式以逗号区分
mapred-site.xml相关的配置:
reduce阶段:
mapreduce.output.fileoutputformat.compress:是否开启压缩,true表示开启,默认为false
mapreduce.output.fileoutputformat.compress.codec:压缩类型
map阶段:
mapreduce.map.output.compress:是否开启压缩,true表示开启,默认为false
mapreduce.map.output.compress.codec:压缩类型
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/191898.html