shuffle阶段数据的压缩机制

hadoop当中支持的压缩算法

压缩格式工具算法文件扩展名是否可切分
DEFLATEDEFLATE.deflate
GzipgzipDEFLATE.gz
bzip2bzip2bzip2.bz2
LZOlzopLZO.lzo
LZ4LZ4.lz4
SnappySnappy.snappy

 

 

 

 

 

 

 

 

各种压缩算法对应使用的java类

压缩格式对应使用的java类
DEFLATEorg.apache.hadoop.io.compress.DeFaultCodec
gziporg.apache.hadoop.io.compress.GZipCodec
bzip2org.apache.hadoop.io.compress.BZip2Codec
LZOcom.hadoop.compression.lzo.LzopCodec
LZ4org.apache.hadoop.io.compress.Lz4Codec
Snappyorg.apache.hadoop.io.compress.SnappyCodec

 

 

 

 

 

 

 

 

常见的压缩速率比较

压缩算法原始文件大小压缩后的文件大小压缩速度解压缩速度
 gzip 8.3GB 1.8GB 17.5MB/s 58MB/s
 bzip2 8.3GB 1.1GB 2.4MB/s 9.5MB/s
 LZO-bset 8.3GB 2GB 4MB/s 60.6MB/s
 LZO 8.3GB 2.9GB 49.3MB/s 74.6MB/s

 

 

 

 

 

 

如何开启压缩:

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

              设置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");
                     configuration.set("mapreduce.output.fileoutputformat.compress.type","RECORD");
              configuration.set("mapreduce.output.fileoutputformat.compress.codec","org.apache.hadoop.io.compress.SnappyCodec");

       方式二:配置全局的MapReduce压缩

              修改mapred-site.xml配置文件,然后重启集群

              map输出数据进行压缩:

                     <property>

                               <name>mapreduce.map.output.compress</name>

                               <value>true</value>

                     </property>

                     <property>

                              <name>mapreduce.map.output.compress.codec</name>

                              <value>org.apache.hadoop.io.compress.SnappyCodec</value>

                     </property>

              reduce输出数据进行压缩

                     <property>      

                            <name>mapreduce.output.fileoutputformat.compress</name>

                            <value>true</value>

                     </property>

                     <property>

                              <name>mapreduce.output.fileoutputformat.compress.type</name>

                             <value>RECORD</value>

                     </property>

                      <property>

                             <name>mapreduce.output.fileoutputformat.compress.codec</name>

                             <value>org.apache.hadoop.io.compress.SnappyCodec</value>

                     </property>

 

 

 

 

 

 

              

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值