shuffle阶段数据的压缩机制

本文探讨了在MapReduce的shuffle阶段启用数据压缩的重要性,以减少网络IO。介绍了Hadoop支持的压缩算法,并提供了如何在Driver代码中及通过全局MapReduce配置启用压缩的详细步骤,特别强调了使用Snappy压缩的效果。
摘要由CSDN通过智能技术生成

在shuffle阶段,可以看到数据通过大量的拷贝,从map阶段输出的数据,都要通过网络拷贝,发送到reduce阶段,这一过程中,涉及到大量的网络IO,如果数据能够进行压缩,那么数据的发送量就会少得多,那么如何配置hadoop的文件压缩呢,以及hadoop当中的文件压缩支持哪些压缩算法呢??接下来一 一细看

MapReduce的执行流程
为什么要配置压缩:
MapReduce
input
mapper
shuffle
partitioner、sort、combiner、【compress】、group
reducer
output

2.0 hadoop当中支持的压缩算法

文件压缩有两大好处,节约磁盘空间,加速数据在网络和磁盘上的传输
前面hadoop的版本经过重新编译之后,可以看到hadoop已经支持所有的压缩格式了,剩下的问题就是该如何选择使用这些压缩格式来对MapReduce程序进行压缩
可以使用bin/hadoop checknative 来查看编译之后的hadoop支持的各种压缩,如果出现openssl为false,那么就在线安装一下依赖包
bin/hadoop checknative
yum install openssl-devel

在这里插入图片描述
hadoop支持的压缩算法
在这里插入图片描述
各种压缩算法对应使用的java类
在这里插入图片描述
常见的压缩速率比较
在这里插入图片描述

如何开启压缩:(详细往下翻)

方式一:在Driver驱动代码中进行设置压缩

设置map阶段的压缩
Configuration configuration = new Configuration();
configuration.set(“mapreduce.map.output.compress”,“true”);
configuration.set(“mapreduce.map.output.compress.codec”,“org.apache.hadoop.io.compress.SnappyCodec”);
设置reduce阶段的压缩
configuration.set(“mapreduce.output.fileoutputformat.compress”,“true”)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值