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

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

压缩方式有 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 文件中添加相关压缩配置。

相关文章
|
7月前
|
存储 编译器
深入解析i++和++i的区别及性能影响
在我们编写代码时,经常需要对变量进行自增操作。这种情况下,我们通常会用到两种常见的操作符:i++和++i。最近在阅读博客时,我偶然看到了有关i++和++i性能的讨论。之前我一直在使用它们,但从未从性能的角度考虑过,这让我突然产生了兴趣。尽管它们看起来相似,但它们之间存在微妙而重要的区别。在本文中,我们将详细解释i++和++i之间的区别,以及它们对代码性能的影响。
247 1
深入解析i++和++i的区别及性能影响
|
6天前
|
数据可视化 前端开发 测试技术
快照测试的优点和局限性
快照测试提供简单快捷的自动化测试,尤其适合快速回归和可视化比较,便于定位问题。但其对变动敏感,可能因微小改变导致测试失败;处理动态内容时表现不佳;且需维护预期快照,增加测试维护工作。在前端测试中,应结合其他方法使用,以实现全面测试覆盖。
|
6天前
|
存储 缓存 安全
【C/C++ 项目优化实战】 分享几种基础且高效的策略优化和提升代码性能
【C/C++ 项目优化实战】 分享几种基础且高效的策略优化和提升代码性能
73 0
|
6天前
|
SQL 存储 编解码
Hive中的压缩技术是如何实现的?请解释其原理和常用压缩算法。
Hive中的压缩技术是如何实现的?请解释其原理和常用压缩算法。
30 0
|
6月前
|
存储 缓存 监控
10 分钟搞懂缓存设计策略
10 分钟搞懂缓存设计策略
351 0
|
11月前
|
传感器 人工智能
热敏电阻、RTD、热电偶的原理和特性
热敏电阻是一种传感器电阻,其电阻值随着温度的变化而改变。按照温度系数不同分为正温度系数热敏电阻(PTC thermistor,即 Positive Temperature Coefficient thermistor)和负温度系数热敏电阻(NTC thermistor,即 Negative Temperature Coefficient thermistor)。正温度系数热敏电阻器的电阻值随温度的升高而增大,负温度系数热敏电阻器的电阻值随温度的升高而减小,它们同属于半导体器件。
|
SQL 监控 NoSQL
技术组件优化分析:原理、方法与实战分享
对一个固定的技术组件的分析优化思路,即组件不是我们开发的,但又要分析优化它,怎么办? 当数据库的CPU并没有全部用完,而是只用了几颗的时候,如何具体定向?将用到查看数据库本身线程栈的方法,这和前面直接看trx表有所不同。
94 0
|
Arthas 缓存 算法
如何写出高性能代码(二)巧用数据特性
同一份逻辑,不同人的实现的代码性能会出现数量级的差异; 同一份代码,你可能微调几个字符或者某行代码的顺序,就会有数倍的性能提升;同一份代码,也可能在不同处理器上运行也会有几倍的性能差异;十倍程序员 不是只存在于传说中,可能在我们的周围也比比皆是。十倍体现在程序员的方法面面,而代码性能却是其中最直观的一面。
154 0
如何写出高性能代码(二)巧用数据特性
|
UED
网站性能:不同加载类型的差别
网站性能:不同加载类型的差别
48 0
网站性能:不同加载类型的差别
|
JSON 前端开发 JavaScript
优化封装方案分析| 学习笔记
快速学习优化封装方案分析。
65 0