阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

4种常用压缩格式在Hadoop中的应用

115次阅读
没有评论

共计 2016 个字符,预计需要花费 6 分钟才能阅读完成。

目前在 Hadoop 中用得比较多的有 lzo,gzip,snappy,bzip2 这 4 种压缩格式,笔者根据实践经验介绍一下这 4 种压缩格式的优缺点和应用场景,以便大家在实践中根据实际情况选择不同的压缩格式。

————————————– 分割线 ————————————–

相关阅读

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

Hadoop LZO 安装教程 http://www.linuxidc.com/Linux/2013-01/78397.htm

Hadoop 集群上使用 Lzo 压缩 http://www.linuxidc.com/Linux/2012-05/60554.htm

————————————– 分割线 ————————————–

1 gzip 压缩

优点:压缩率比较高,而且压缩 / 解压速度也比较快;hadoop 本身支持,在应用中处理 gzip 格式的文件就和直接处理文本一样;有 hadoop native 库;大部分 linux 系统都自带 gzip 命令,使用方便。

缺点:不支持 split。

应用场景:当每个文件压缩之后在 130M 以内的(1 个块大小内),都可以考虑用 gzip 压缩格式。譬如说一天或者一个小时的日志压缩成一个 gzip 文件,运行 mapreduce 程序的时候通过多个 gzip 文件达到并发。hive 程序,streaming 程序,和 java 写的 mapreduce 程序完全和文本处理一样,压缩之后原来的程序不需要做任何修改。

2 lzo 压缩

优点:压缩 / 解压速度也比较快,合理的压缩率;支持 split,是 hadoop 中最流行的压缩格式;支持 hadoop native 库;可以在 linux 系统下安装 lzop 命令,使用方便。

缺点:压缩率比 gzip 要低一些;hadoop 本身不支持,需要安装;在应用中对 lzo 格式的文件需要做一些特殊处理(为了支持 split 需要建索引,还需要指定 inputformat 为 lzo 格式)。

应用场景:一个很大的文本文件,压缩之后还大于 200M 以上的可以考虑,而且单个文件越大,lzo 优点越越明显。

3 snappy 压缩

优点:高速压缩速度和合理的压缩率;支持 hadoop native 库。

缺点:不支持 split;压缩率比 gzip 要低;hadoop 本身不支持,需要安装;linux 系统下没有对应的命令。

应用场景:当 mapreduce 作业的 map 输出的数据比较大的时候,作为 map 到 reduce 的中间数据的压缩格式;或者作为一个 mapreduce 作业的输出和另外一个 mapreduce 作业的输入。

4 bzip2 压缩

优点:支持 split;具有很高的压缩率,比 gzip 压缩率都高;hadoop 本身支持,但不支持 native;在 linux 系统下自带 bzip2 命令,使用方便。

缺点:压缩 / 解压速度慢;不支持 native。

应用场景:适合对速度要求不高,但需要较高的压缩率的时候,可以作为 mapreduce 作业的输出格式;或者输出之后的数据比较大,处理之后的数据需要压缩存档减少磁盘空间并且以后数据用得比较少的情况;或者对单个很大的文本文件想压缩减少存储空间,同时又需要支持 split,而且兼容之前的应用程序(即应用程序不需要修改)的情况。

最后用一个表格比较上述 4 种压缩格式的特征(优缺点):

4 种压缩格式的特征的比较
压缩格式 splitnative 压缩率 速度 是否 hadoop 自带 linux 命令 换成压缩格式后,原来的应用程序是否要修改
gzip 很高 比较快 是,直接使用 和文本处理一样,不需要修改
lzo 比较高 很快 否,需要安装 需要建索引,还需要指定输入格式
snappy 比较高 很快 否,需要安装 没有 和文本处理一样,不需要修改
bzip2 最高 是,直接使用 和文本处理一样,不需要修改

更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计2016字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中