Hadoop数据压缩与移动全解析
1. Hadoop数据压缩基础
在Hadoop中,数据压缩是优化存储和处理的重要手段。Hive推荐使用SequenceFile作为表的输出格式,因为SequenceFile块可以单独压缩。这种技术为Hadoop中的压缩提供了一种快速简便的方法,尤其适用于不是特别大的文件,它以一种相对透明的方式处理压缩。
如果压缩后的文件大小远大于HDFS块大小,就需要考虑能够分割文件的压缩技术。
2. 可分割的LZOP压缩
2.1 LZOP概述
当处理大型文本文件时,即使压缩后文件大小仍远大于HDFS块大小,为避免一个Map任务处理整个大压缩文件,需要选择支持文件分割的压缩编解码器,LZOP就是这样一个选择。
LZOP是仅有的两种允许压缩文件分割的编解码器之一,另一个是bzip2,但bzip2的压缩速度极慢,几乎无法使用。LZOP在压缩率和速度之间取得了很好的平衡。
LZO和LZOP的区别如下:
| 编解码器 | 特点 |
| ---- | ---- |
| LZO | 基于流的压缩存储,没有块或头的概念 |
| LZOP | 有块的概念(带有校验和),压缩输出可分割,Hadoop默认将以 .lzo 结尾的文件视为LZOP编码,以 .lzo_deflate 结尾的文件视为LZO编码 |
2.2 集群准备
由于许可原因,Hadoop不捆绑LZOP。要在集群上编译和安装所有先决条件比较繁琐,但附录中有详细说明。要编译和运行相关代码,需遵循
超级会员免费看
订阅专栏 解锁全文
40

被折叠的 条评论
为什么被折叠?



