大数据-----------shuffle过程的优化:combiner合并,compress压缩(五)

shuffle过程的优化

combiner合并

在map阶段提前进行了一次合并,一般来讲等同于提前执行了reduce操作
好处:可以降低reduce的压力
在map阶段的进行合并是并行的(分布式的)
在这里插入图片描述
大数据-----------shuffle过程的优化:combiner合并,compress压缩(五)_第1张图片
大数据-----------shuffle过程的优化:combiner合并,compress压缩(五)_第2张图片
注意:并不是所有的程序都适合combiner:测试
设置combiner之和和之后的结果要一致,不能因为性能优化导致结果不对,A + (B +C) = (A+B) + C

compress压缩

大大减少了磁盘IO以及网络IO

MapReduce有很多地方都可以压缩

输入的就是一个压缩文件

map shuffle中合并成一个大文件,对该文件进行压缩,reduce过来取数据就是压缩之后的数据

reduce输出

Hadoop常见的压缩格式

检查本地库支持哪些压缩:bin/hadoop checknative

修改压缩库,只需要替换native包(在hadoop-2.7.3/lib里)即可

常用的压缩格式:snappy,lzo,lz4

Hadoop中设置压缩

输入: 一般不配置

map的中间结果:

mapreduce.map.output.compress =true;
mapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.Lz4Codec 

压缩方式的寻找:DefaultCodec → 找打该类的目录 → 其他压缩类和他在同一个目录下

reduce输出:

mapreduce.output.fileoutputformat.compress =true;
mapreduce.output.fileoutputformat.compress.codec =org.apache.hadoop.io.compress.Lz4Codec 

配置方式:
方式一:在main方法中Configuration
在这里插入图片描述
方式二:在配置文件中
全局修改,所有MapReduce都生效

方式三:运行的时候通过自定义配置
bin/yarn jar xxx.jar -DXX=yy -Daa=bb MianClass input_path output_Path

检查是否配置成功:
方式一:
hpsk01.huadian.com:50070 → Configuration → 查看对应配置参数
配置前:
在这里插入图片描述
配置后:
大数据-----------shuffle过程的优化:combiner合并,compress压缩(五)_第3张图片
方拾二:查看计数器
配置前:
大数据-----------shuffle过程的优化:combiner合并,compress压缩(五)_第4张图片
配置后:
大数据-----------shuffle过程的优化:combiner合并,compress压缩(五)_第5张图片

你可能感兴趣的:(大数据总结)