文章目录
1.大数据常见的压缩格式
压缩分为有损和无损两大类,生产中的压缩技术一定是无损压缩,具体常用的压缩格式以及压缩性能对比请参考:大数据常见压缩格式以及性能对比
分析:
压缩会从压缩比、压缩速度以及是否支持分片方面考虑
snappy:压缩速度最快,远高于别的压缩个是
gzip、bzip2:压缩比最高,约1/5
textFile(不压缩)、bzip2、LZO:支持文件分片,LZO默认不支持,创建索引后支持分片
2.压缩使用场景
2.1如何判定是否使用压缩?
- 文件压缩对于大数据存储与计算是家常便饭,只要数据量达到一定级别,生产中就要考虑使用数据压缩
- 压缩以及解压是高消耗cpu的过程,故若机器的负载load average很高时就不能使用压缩,资源不够可通过扩容快速解决。
2.2压缩在ETL作业生命周期在使用场景
分析: 多年经验
在整个ETL的过程中数据有三次是落在磁盘上:
elt源数据:这里重点考虑的是压缩后的文件支持分片,可选 textFile、LZO、bzip2
MAP输出数据:这里重点考虑数据,快速压缩以及解压,直接选snappy
Reduce输出数据:若输出数据只是为了存储保留,应选压缩比高的(gzip、bzip2),若输出数据为下一个作业的MAP输入,应选择支持分片。
3.文件压缩配置实现
3.1 确保hadoop支持压缩
[hadoop@hadoop001 ~]$ hadoop checknative
19/04/13 22:06:01 INFO bzip2.Bzip2Factory: Successfully loaded & initialized native-bzip2 library system-native
19/04/13 22:06:01 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
Native library checking:
hadoop: true /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/lib