Hadoop压缩方式
一、作用
通过对数据的压缩,可以减少磁盘IO,节省磁盘空间;但是压缩会增加CPU负荷开销,所以在运算密集的Job中少用压缩,在IO流频繁的操作Job中,多用压缩。
二、主要压缩方式
1)DEFLATE
hadoop自带压缩方式,压缩文件后缀名为.deflate,不支持切片;
2)Gzip
hadoop自带压缩方式,压缩文件后缀名为.gzip,不支持切片;
压缩率比较高,压缩速度一般;
3)bzip2
hadoop自带压缩方式,压缩文件后缀名为.bzip2,支持切片;
压缩率高,压缩速度慢,一般用于长时间不使用,但不能删除的数据;
4)Snappy
hadoop自带压缩方式,压缩文件后缀名为.snappy,不支持切片;
压缩率一般,压缩速度快;
5)LZO
需要安装,压缩文件后缀名为.lzo,支持切片,但支持切片需要建额外索引;
在配置压缩方式后需要修改原程序,需要建索引,指定输入格式;
压缩率一般,压缩速率比较快;
三、压缩的使用
1)Map输入前
Hadoop自动检验文件扩展名,对文件进行压缩和解压;
如果数据量比较小,则使用压缩速度比较快的LZO/Snappy;
如果数据量比较大,则考虑支持切片的bzip2/LZO;
2)Map输出数据
因为MapTask和ReduceTask之间的网络传输IO,选择压缩解压速度快的Snappy/LZO;
3)Reducer输出
如果数据永久保存,则使用压缩率较高的Bzip2和Gzip;
如果作为下一个MapReduce输入,则考虑是否支持切片;
四、总结
压缩方式压缩率压缩速度是否支持切片是否自带使用选择(例)Gzip比较高一般否是reduce,一般不使用bzip2高慢是是map输入数据量大时使用Snappy一般快否是map输入(数据量小)、输出数据阶段LZO一般比较快是否map输入(数据量小)、输出数据阶段
版权归原作者 小猿天地 所有, 如有侵权,请联系我们删除。