浅谈HADOOP中压缩技术的选择

xiaoxiao2021-03-01  30

众所周知,没有任何一种压缩算法能达到一劳永逸的效果,如何选择压缩算法需要实际情况实际分析,归根到底其实就是时间与空间的选择。压缩的好处 和 坏处好处:    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的数据源,建议选择压缩比较高的技术。

转载请注明原文地址: https://www.6miu.com/read-3099958.html

最新回复(0)