7.2 数据的压缩
对于任何大容量的分布式存储系统而言,文件压缩都是必须的,文件压缩带来了两个好处:
1)减少了文件所需的存储空间;
2)加快了文件在网络上或磁盘间的传输速度。
Hadoop关于文件压缩的代码几乎都在package org.apache.hadoop.io.compress中。本节的内容将会主要围绕这一部分展开。
7.2.1 Hadoop对压缩工具的选择
有许多压缩格式和压缩算法是可以应用到Hadoop中的,但是不同的算法都有各自的特点。表7-1是Hadoop中使用的一些压缩算法,表7-2是它们的压缩格式和特点。
压缩一般都是在时间和空间上的一种权衡。一般来说,更长的压缩时间会节省更多的空间。不同的压缩算法之间有一定的区别,而同样的压缩算法在压缩不同类型的文件时表现也不同。jeff的试验比较报告中包含了面对不同文件在各种要求(最佳压缩、最快速度等)下的最佳压缩工具。如果大家感兴趣可以自行查阅,地址为http://compression.ca/act/act-summary.html(这个地址是总体评价,此网站还有不同压缩工具面对不同类型文件时的具体表现)。