文件压缩有两大好处:减少存储文件所需要的磁盘空间,并加速数据在网络和磁盘上的传输。对于处理大数据,这两个好处非常重要
hadoop常用的压缩算法
所有压缩算法都需要权衡空间/时间:压缩和解压缩速度更快,其代价通常是只能节省少量的空间。上图列出的所有压缩工具都提供9个不同的选项来控制压缩时必须考虑的权衡:选项-1为优化压缩速度,-9为优化压缩空间。例如,下面是通过最快的压缩方法创建一个名为file.gz的压缩文件:
gzip -1 file
不同压缩工具有不同的压缩特性。gzip是一个通用的压缩工具,在空间/时间性能的权衡中,居于其他两个压缩方法之间。bzip2的压缩能力强于gzip,但压缩速度更慢一点。尽管bzip2的解压缩比压缩速度快,但仍比其他压缩格式要慢一些。另一方面,LZO、LZ4和Snappy均优化压缩速度,其速度比gzip快一个数量级,当压缩效率稍逊一筹。Snappy和LZ4的解压缩速度比LZO高出很多。
“是否可切分”列表示对应的压缩算法是否支持切分(splitable),也就是说,是否可以搜索数据流的任意位置并进一步往下读取数据。可切分压缩格式尤其适合MapReduce。