几种压缩方式及各自优缺点【重点】

简介: 几种压缩方式及各自优缺点【重点】

压缩方式有 Gzip、Bzip2、LZO、Snappy 压缩等几种方式,他们的优缺点分别为:

1.Gzip 压缩:Hadoop 自带的压缩方式,不支持切片,压缩比率高,但压缩速度慢;

应用场景:

(1)因为不支持切片,所以可以用在 “当每个文件压缩之后都不超过 130M 以内的(一个块大小内)的场景。”

 

2.Bzip2 压缩:Hadoop 自带的压缩方式,支持切片,压缩率很高,比 Gzip 还高,但压缩速度很慢,毕竟慢工出细活;

应用场景:

(1)适合对速度要求不高,但需要较高的压缩率的时候

(2)输出的数据比较大,需要压缩存档减少磁盘空间并且以后数据用的少的情况(冷数据)

(3)单个很大的文本文件想压缩来减少存储空间,同时又需要支持 Split。

 

3.LZO 压缩:Hadoop 默认不支持 LZO,需要手动配置才可以使用,支持切片,压缩率介于 Gzip 和 Snappy 之间,压缩速度也较快。

应用场景:

(1)当一个文本文件很大时,压缩之后还大于 200M 以上的可以考虑,而且单个文件越大,LZO 有点越明显。

 

4.Snappy 压缩:Hadoop 自带的压缩方式,不支持切片,压缩率较低,但压缩速度特别快。

应用场景:

(1)当 Map 输出的数据较大,作为 Map 到 Reduce 的中间数据的压缩格式

(2)作为一个 MapReduce 作业的输出(reduce)和另一个 MapReduce 作业的输入(Map)

 

提示:如果面试过程问起,我们一般回答压缩方式为 Snappy,特点速度快,缺点无法

切分(可以回答在链式 MR 中,Reduce 端输出使用 bzip2 压缩,以便后续的 map 任务对数据进行 split

 

项目经验之 LZO 压缩

Hadoop 默认不支持 LZO 压缩,如果需要支持 LZO 压缩,需要添加 jar 包,并在 hadoopcores-site.xml 文件中添加相关压缩配置。

相关文章
|
自然语言处理 算法 测试技术
【数据结构原理】系统生命周期 | 算法规范 | 笔记
【数据结构原理】系统生命周期 | 算法规范 | 笔记
91 0
|
7月前
|
存储 缓存 Java
浅析JAVA日志中的几则性能实践与原理解释
本篇文章通过几个技术点说明日志记录过程中的性能实践,计算机领域的性能往往都遵循着冰山法则,即你能看得见的、程序员能感知的只是其中的一小部分,还有大量的细节隐藏在冰山之下。
|
2月前
|
存储 缓存 运维
缓存技术有哪些优缺点呢
【10月更文挑战第19天】缓存技术有哪些优缺点呢
|
5月前
|
缓存 Java
浅析JAVA日志中的性能实践与原理解释问题之AsyncAppender的配置方式的问题是如何解决的
浅析JAVA日志中的性能实践与原理解释问题之AsyncAppender的配置方式的问题是如何解决的
|
5月前
|
存储 Java
浅析JAVA日志中的性能实践与原理解释问题之测试日志内容大小对系统性能的影响问题如何解决
浅析JAVA日志中的性能实践与原理解释问题之测试日志内容大小对系统性能的影响问题如何解决
116 0
|
5月前
|
运维 中间件 数据库
浅析JAVA日志中的性能实践与原理解释问题之元信息打印会导致性能急剧下降问题如何解决
浅析JAVA日志中的性能实践与原理解释问题之元信息打印会导致性能急剧下降问题如何解决
|
7月前
|
Web App开发 存储 网络协议
C/C++ 数据结构设计与应用(四):C++数据压缩与传输:从理论到实践的全景解析
C/C++ 数据结构设计与应用(四):C++数据压缩与传输:从理论到实践的全景解析
378 3
|
7月前
|
存储 监控 安全
插件机制详解:原理、设计与最佳实践
插件机制详解:原理、设计与最佳实践
372 0
|
存储 缓存 监控
10 分钟搞懂缓存设计策略
10 分钟搞懂缓存设计策略
848 0
|
设计模式 存储 开发框架
C++ 插件机制的实现原理、过程、及使用
C++ 插件机制的实现原理、过程、及使用