MapReduce数据压缩

MapReduce数据压缩

  • 压缩的分类
压缩格式压缩格式算法文件扩展名切分换成压缩格式后,原来的程序是否要修改
DEFLATE是,直接使用DEFLATE.default和文本处理一样,不需要修改
Gzip是,直接使用DEFLATE.gz和文本处理一样,不需要修改
Bzip2是,直接使用Bzip2.bz2和文本处理一样,不需要修改
LZO否,需要安装LZO.lzo要建索引和指定输入格式
Snappy否,需要安装Snappy.snappy和文本处理一样,不需要修改
  • 压缩格式
压缩格式对应的编码/解码器
DEFAULTorg.apache.hadoop.io.compress.DEFAULTCodec
gziporg.apache.hadoop.io.compress.GzipCodec
bizp2org.apache.hadoop.io.compress.Bzip2Codec
LZOcom.hadoop.compression.lzo.LzoCodec
Snappyorg.apache.hadoop.io.compress.SnappyCodec
  • 各种压缩的优缺点

  • Gzip压缩:
    优点:压缩率比较高,压缩/解压缩度较快;Hadoop本身支持,在应用中处理Gzip格式的文件和直接处理文本一样;大部分Linux系统自带Gzip,使用方便
    缺点:不支持Split(不可切分)
    应用场景:压缩文件在130M之内

  • Bzip2压缩: 优点:支持Split;压缩率很高,比Gzip高,Hadoop本身支持
    缺点:压缩/解压速度慢
    应用场景:适合对速度要求不高,且对压缩率要求高的

  • Lzo压缩:
    优点:压缩/解压都较快,合理的压缩率;支持Split,是hadoop中最常用的压缩格式;可以在Linux中安装lzopm命令,使用方便
    缺点:压缩率比Gzip低,hadoop本身不支持,需要安装;还要做一些处理
    应用场景:大文件

  • Snappy压缩: 优点:高速压缩速度和合理的压缩率
    缺点:不支持Split;压缩率比Gzip低;hadoop本身不支持

  • 压缩的使用

//开启Map输出端压缩
conf.setBoolean("mapreduce,map.output.compress",true);
//设置压缩方式
conf.setClass("mapreduce.map.output.compress.codec", BZip2Codec.class, CompressionCodec.class);
  • Reduce端压缩决定着最终的输出文件类型
//开启Reduce端压缩
FileOutputFormat.setCompressOutput(job,true);
//设置压缩方式
FileOutputFormat.setOutputCompressorClass(job,BZip2Codec.class);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值