大数据 hadoop 压缩 总结
1.优缺点
1.1优点
- 最明显就是降低了磁盘的存储空间
- 降低了网络传输io和磁盘io
- 压缩后提高了网络磁盘的传输速度,提高处理效率
1.2缺点
2.常见压缩格式
压缩格式 | 工具 | 算法 | 扩展名 | 是否支持分割 |
---|
deflate | N/A | deflate | .deflate | 否 |
gzip | gzip | deflate | .gz | 否 |
lzo | lzop | lzo | .lzo | 是(需要index) |
snappy | N/A | snappy | .snappy | 否 |
bzip2 | bzip2 | bzip2 | .bz2 | 是 |
lz4 | N/A | lz4 | .lz4 | 否 |
2.1 gzip
- 优点 : hadoop自带,压缩比较高,使用方便
- 缺点 :不支持split
2.2 bzip2
- 优点 : 压缩比很高,支持split
- 缺点 :解压慢,耗费cpu
2.3 snappy
- 优点 : 压缩速度快
- 缺点 : 不支持split ,压缩比低
2.4 lzo
- 优点 : 压缩率比较合适,压缩解压时间快,支持split
- 缺点 : lzo虽然支持split,但需要对lzo文件建索引,需要指定inputformat为lzo格式,否则hadoop也是会把lzo文件看成一个普通文件
2.5 总结
经过上面对比,每种压缩都有各自的优势与劣势,我们在选择使用哪种压缩时,需要根据场景来判断,不同的场景选择不同的压缩方式
例如:选择高压缩比,那么对于cpu的性能要求要高,同时压缩、解压时间耗费也多;
选择压缩比低的,对于磁盘io、网络io的时间要多,空间占据要多;
选择对于支持分割的,可以实现并行处理,不支持split的需要空置block的大小如果一个文件太大不支持split只有一个map去处理太耗时。