摘要: hadoop中4种压缩格式的特征的比较

摘要: hadoop中4种压缩格式的特征的比较java

1 gzip压缩linux

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

缺点:不支持split。app

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

2 lzo压缩ui

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

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

应用场景:一个很大的文本文件,压缩以后还大于200M以上的能够考虑,并且单个文件越大,lzo优势越越明显。日志

3 snappy压缩orm

优势:高速压缩速度和合理的压缩率;支持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种压缩格式的特征的比较

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

和文本处理同样,不须要修改

 

 

 

http://blog.csdn.net/lifuxiangcaohui/article/details/52623660

相关文章
相关标签/搜索