Hadoop压缩方式详解

首先为什么要使用压缩

压缩技术能够有效的减少底层存储系统(HDFS)读写字节数,通过对mapper,reducer运行过程的数据进行压缩,以减少磁盘IO,提高MR程序的运行速度。

压缩的基本原则

1.运算密集型的任务,少使用压缩
2.IO密集型的任务,多使用压缩

MR支持的压缩格式
压缩格式是否需要安装算法文件扩展名是否可切分
DEFLATEdeflate.deflate
Gzipdeflate.gz
bzip2bzip2.bz2
LZOLZO.lzo
SnappySnappy.snappy

压缩性能的比较

压缩格式压缩大小压缩速度
Gzip
bzip2
LZO
Snappy
压缩方式的选择
Gzip压缩

优点:压缩率比较的高,而且压缩/解压速度也比较的快;hadoop本身支持,大部分linux系统都自带,使用方便;
缺点:不支持split

Bzip2压缩

优点:支持split,具有很高的压缩率,hadoop本身自带;
缺点:压缩/解压缩慢

Lzo压缩

优点:压缩/解压缩速度比较快,合理的压缩率,支持split;
缺点:压缩率相对Gzip而言要低一些,hadoop本身不支持,需要自己手动安装;

Snappy压缩

优点:高速压缩速度与合理的压缩率
缺点:不支持split,hadoop不支持,需要手动安装

压缩位置的选择

压缩可以在MapReduce作用的任意阶段启用

压缩参数配置
参数默认值阶段建议
io.compression.codecs (在core-site.xml中配置)org.apache.hadoop.io.compress.DefaultCodec, org.apache.hadoop.io.compress.GzipCodec, org.apache.hadoop.io.compress.BZip2Codec输入压缩Hadoop使用文件扩展名判断是否支持某种编解码器
mapreduce.map.output.compress(在mapred-site.xml中配置)falsemapper输出这个参数设为true启用压缩
mapreduce.map.output.compress.codec(在mapred-site.xml中配置)org.apache.hadoop.io.compress.DefaultCodecmapper输出企业多使用LZO或Snappy编解码器在此阶段压缩数据
mapreduce.output.fileoutputformat.compress(在mapred-site.xml中配置)falsereduce输出这个参数设为true启用压缩
mapreduce.output.fileoutputformat.compress.codec(在mapred-site.xml中配置)org.apache.hadoop.io.compress. DefaultCodecreducer输出使用标准工具或者编解码器,如gzip和bzip2
mapreduce.output.fileoutputformat.compress.type(在mapred-site.xml中配置)RECORDreducer输出SequenceFile输出使用的压缩类型:NONE和BLOCK
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值