Hadoop所支持的几种压缩格式

Gzip压缩java

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

缺点:不支持split。并发

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

lzo压缩oop

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

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

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

Snappy压缩cdn

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

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

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

Bzip2压缩

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

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

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

640?wx_fmt=jpeg

相关文章
相关标签/搜索