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

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

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

相关文章
|
8天前
|
数据可视化 前端开发 测试技术
快照测试的优点和局限性
快照测试提供简单快捷的自动化测试,尤其适合快速回归和可视化比较,便于定位问题。但其对变动敏感,可能因微小改变导致测试失败;处理动态内容时表现不佳;且需维护预期快照,增加测试维护工作。在前端测试中,应结合其他方法使用,以实现全面测试覆盖。
|
8天前
|
缓存 自然语言处理 JavaScript
万字长文深度解析JDK序列化原理及Fury高度兼容的极致性能实现
Fury是一个基于JIT动态编译的高性能多语言原生序列化框架,支持Java/Python/Golang/C++/JavaScript等语言,提供全自动的对象多语言/跨语言序列化能力,以及相比于别的框架最高20~200倍的性能。
168510 3
|
8天前
|
存储 缓存 安全
【C/C++ 项目优化实战】 分享几种基础且高效的策略优化和提升代码性能
【C/C++ 项目优化实战】 分享几种基础且高效的策略优化和提升代码性能
76 0
|
6月前
|
存储 缓存 监控
10 分钟搞懂缓存设计策略
10 分钟搞懂缓存设计策略
353 0
|
11月前
|
C++
优化对象变高效
没有优化过的对象,不足以看出C++的优势
|
存储 JSON Dubbo
【Java技术指南】「序列化系列」深入挖掘FST快速序列化压缩内存的利器的特性和原理
【Java技术指南】「序列化系列」深入挖掘FST快速序列化压缩内存的利器的特性和原理
387 0
|
XML 存储 JSON
【优化技术专题】针对Java对象压缩及序列化技术的探索之路
【优化技术专题】针对Java对象压缩及序列化技术的探索之路
275 0
【优化技术专题】针对Java对象压缩及序列化技术的探索之路
|
JSON 前端开发 JavaScript
优化封装方案分析| 学习笔记
快速学习优化封装方案分析。
65 0
|
XML JSON 前端开发
优化封装方案实现| 学习笔记
快速学习优化封装方案实现。
80 0
优化封装方案实现| 学习笔记
|
JSON 安全 NoSQL
JavaWeb - 深度拷贝方式和性能对比(二)
JavaWeb - 深度拷贝方式和性能对比(二)
123 0