在MapReduce的各阶段过程中,根据场景开启不同类型的压缩,可以有效提升Job的处理时间;

MR使用压缩的各个阶段:

      压缩可以在 MapReduce 作用的任意阶段启用,通过压缩可以有效降低Job的处理时间;

    MapReduc压缩工具对比及配置_第1张图片

    从上图可以总结为如下内容:

    1.从原始数据到Map阶段;需要可切分的Splitable,以便于启动多个线程加速任务

    2.Map阶段落地过程;因为需要马上进行Reduce,所以讲求的是Speed,所以越快越好

    3.Reduce阶段是分结果的:

        归档需求:建议采用高压缩比的工具,归档后节省磁盘空间;

        作为下一个任务的输入:要采用Splitable,如果不切片的话下一个MapReduce将只有一个task来处理任务

压缩工具特点对比:

    MapReduc压缩工具对比及配置_第2张图片

压缩性能比较:

    MapReduc压缩工具对比及配置_第3张图片

    通过上图,可以根据不同的阶段,选项不同的压缩工具;

    在选项压缩工具时,针对不同的阶段,可以从3个方面选择对应压缩工具:压缩比、压缩速度、是否分片

关于压缩Hadoop引入的编码器:

    MapReduc压缩工具对比及配置_第4张图片

Hadoop关于压缩参数的配置:

    MapReduc压缩工具对比及配置_第5张图片

    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:压缩类型