浅谈HADOOP中压缩技术的选择
2018-03-03 12:44
190 查看
众所周知,没有任何一种压缩算法能达到一劳永逸的效果,如何选择压缩算法需要实际情况实际分析,归根到底其实就是时间与空间的选择。
压缩的好处 和 坏处
好处:
1、节省空间
2、减少IO(硬盘IO 和 网络传输IO)
3、减少网络传输时间
坏处:
1、由于使用数据时,需要先将数据解压,加重CPU负荷
常用的压缩技术:
![](http://img.blog.csdn.net/20180303123601137?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjYzNjkyMTM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
目前如果LZO使用索引技术,是能支持风格
压缩在Hadoop中的应用 - 是否支持分割
gzip、bzip2、LZO、Snappy区别主要在于是否支持分割。如果不支持分割,则意味中只能使用一个Task处理。
如何选择压缩算法
1、根据实际情况,选择使用Lossless(无损)还是Lossy(有损)的压缩技术。
2、判断热度选择压缩比。
以一个MR的JOB为例子作分析:
这里先将一个MR的JOB分大致为3个阶段:MAP、Shuffle&Sort、Reduce。每个阶段都会伴随网络传输、硬盘IO 和 解压(输入)压缩(输出)
已一个MR的job为例,InputSplit->Maps之间,如果读取的文件使用了不支持分割的压缩技术,意味着这里InputSplit 和 Maps 是多对一的关系,效率自然大大减低,如果数据量大甚至会出现OOM。
如果使用支持分割的技术,如果压缩比太大,意味着Maps阶段会花费大量的CPU资源去解压这些数据,很好可能造成JOB的阻塞。所以需要权衡时间和空间采用一种解压较快、压缩比较低可支持分割的压缩技术。
Shuffle&Sort阶段同Map
Reduce阶段,如果最后输出的数据不作为其它JOB的数据源,建议选择压缩比较高的技术。
压缩的好处 和 坏处
好处:
1、节省空间
2、减少IO(硬盘IO 和 网络传输IO)
3、减少网络传输时间
坏处:
1、由于使用数据时,需要先将数据解压,加重CPU负荷
常用的压缩技术:
目前如果LZO使用索引技术,是能支持风格
压缩在Hadoop中的应用 - 是否支持分割
gzip、bzip2、LZO、Snappy区别主要在于是否支持分割。如果不支持分割,则意味中只能使用一个Task处理。
如何选择压缩算法
1、根据实际情况,选择使用Lossless(无损)还是Lossy(有损)的压缩技术。
2、判断热度选择压缩比。
以一个MR的JOB为例子作分析:
这里先将一个MR的JOB分大致为3个阶段:MAP、Shuffle&Sort、Reduce。每个阶段都会伴随网络传输、硬盘IO 和 解压(输入)压缩(输出)
已一个MR的job为例,InputSplit->Maps之间,如果读取的文件使用了不支持分割的压缩技术,意味着这里InputSplit 和 Maps 是多对一的关系,效率自然大大减低,如果数据量大甚至会出现OOM。
如果使用支持分割的技术,如果压缩比太大,意味着Maps阶段会花费大量的CPU资源去解压这些数据,很好可能造成JOB的阻塞。所以需要权衡时间和空间采用一种解压较快、压缩比较低可支持分割的压缩技术。
Shuffle&Sort阶段同Map
Reduce阶段,如果最后输出的数据不作为其它JOB的数据源,建议选择压缩比较高的技术。
相关文章推荐
- Hadoop技术内幕-序列化与压缩
- hadoop技术内幕-序列化与压缩(一)
- 浅谈大数据Spark技术是否可以替代Hadoop
- Hadoop压缩算法说明与选择
- hadoop技术内幕-序列化与压缩(一)
- 浅谈互动电视中间件技术及其选择
- 浅谈Hadoop技术——前言
- 【直击美国云计算】如何做Hadoop、流处理框架等技术的采用选择
- BigData学习3_大数据技术Hadoop面试题_选择和判断
- hadoop技术内幕-序列化与压缩(一)
- HADOOP 0.20.2以上版本MapReduce中采用压缩技术
- Hadoop MapReduce中压缩技术的使用
- Hadoop技术内幕HDFS-笔记4之压缩
- 大数据的技术生态圈:Hadoop,hive,spark
- 从选择 Java 框架谈谈技术人员的"舒适区"
- 蓝牙APP开发相关技术浅谈
- 再谈网游同步技术:实时动作游戏同步方式和传输协议选择
- 即时通讯 视频会议开源技术选择
- 一起谈.NET技术,C#权限管理和设计浅谈
- 浅谈数据仓库、商业智能、数据挖掘、大数据、云技术的前世今生。