大数据-常用压缩方式总结

转载声明

本文系转载自以下两篇文章:

转载仅为方便学习查看,一切权利属于原作者,本人只是做了整理和排版,如果带来不便请联系我删除。

摘要

本文对大数据常用的压缩方式GZip, BZip2, LZO, Snappy进行对比。

特性对比

GZipBZip2LZOSnappy
HadoopCodec类GzipCodecBzip2CodecLzopCodecSnappyCodec
算法DeflateGZip2LZOSnappy
文件扩展名.gz.bz2.lzo.snappy
Hadoop内嵌
可切片
压缩比(测试值)2 (13.4%)1 (13.2%)3 (20.5%)4 (22.2%)
压缩速率3 (21MB/S)4 (2.4MB/S)2 (135MB/S)1 (172MB/S)
解压速率3 (118MB/s)4 (9.5MB/s)1 (410MB/s)2 (409MB/S)
特点GZip压缩比高,大部分Linux系统自带Gzip命令,Hadoop原生就支持使用很方便;速度较慢,而且不支持切片。BZip2压缩比最高,但速度实在太慢了压缩比尚可,速度快,支持切片(需要建立索引,且文件修改后要重建索引,还需将 InputFormat 指定为Lzo)。支持hadoop native库,但不是Hadoop自带,需要自己安装。压缩比最低,但速度最快,但不支持切片。支持hadoop native库,但不是Hadoop自带,需要自己安装。需要注意的是,实际生产环境中Snappy的表现通常比 LZO 好,应当进行测试对比再决定。
使用场景如果压缩后大小和Block差不多大可以使用。也适合磁盘不富裕要求压缩比且对压缩时间无特别要求的场景,如异步离线压缩归档,比如HBase写入后的刷盘适合很老的、极低频使用的历史文件(冷数据)归档特点是支持切片实时写入的Hive底层HDFS文件可用LZO方式压缩

压缩选择

  • 需要综合权衡压缩/解压缩数据所需资源如IO/网络贷款/CPU等,以及考虑数据使用场景
  • 如果数据已经压缩(例如 JPEG 格式的图像),则不建议进行压缩。事实上,结果文件实际上可能大于原文件。
  • MR程序需要支持可拆分,一般选LZO;而HBase不需要考虑拆分性。
  • MR程序可选压缩Map中间输出结果、程序整体输出结果等。

Hadoop本地库检测

hadoop checknative

更多好文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值