Hadoop数据压缩技术
一、Hadoop数据压缩及其优缺点
1、压缩技术的好处与坏处
好处:
- 减少存储磁盘空间
- 降低IO(网络的IO和磁盘的IO)
- 加快数据在磁盘和网络中的传输速度,从而提高系统的处理速度。
坏处:
- 由于使用数据时,需要先将数据解压,加重了CPU的负荷。
使用压缩的基本原则:
- 运算密集型的job,少用压缩
- IO密集型的job,多用压缩
2、压缩格式
压缩格式 | Hadoop自带 | 算法 | 文件扩展名 | 是否可以切分 | 工具 | Hadoop编码/解码器 |
Default | 是,直接使用 | Default | .deflate | 否 | N/A | org.apache.hadoop.io.compress.DefaultCodec |
Gzip | 是,直接使用 | Default | .gz | 否 | gzip | org.apache.hadoop.io.compress.GzipCodec |
bzip | 是,直接使用 | bzip2 | .bz2 | 是 | bzip2 | org.apache.hadoop.io.compress.BZip2Codec |
LZO | 否,需要安装 | LZO | .lzo | 是 | Lzop | com.hadoop.compression.lzo.LzopCodec |
LZ4 | 否,需要安装 | lZ4 | .lz4 | 否 | N/A | com.hadoop.compression.lzo.Lz4Codec |
Snappy | 否,需要安装 | Snappy |
.snappy |
否 | N/A | org.apache.hadoop.io.compress.SnappyCodec |
3、优缺点
压缩格式 | 优点 | 缺点 |
gzip |
压缩比在四种压缩方式中比较高;hadoop本身支持,在应用中处理gizp格式的文件和直接处理文本一样;有hadoop native库,大部分linux系统都自带gzip命令,使用方便。 |
不支持split |
lzo | 压缩/解压速度也比加快,合理 的压缩率;支持split,是hadoop中最流行的压缩格式,支持hadoop native库;需要在linux系统下自行安装lzop命令,使用方便 | 压缩率比gizp要低;hadoop本身不支持,需要安装;lzo虽然支持split,但需要对lzo文件建索引,否则hadoop也是会把lzo文件看成一个普通文件(为了支持split需要建索引,需要指定inputformat为lzo格式) |
snappy | 压缩速度快;支持hadoop native库 | 不支持split;压缩比低;hadoop本身不支持,需要安装;linux系统下没有对应的命令d.bzip2 |
bzip2 | 支持split;具有很高的压缩率,比gzip压缩率都高;hadoop本身支持,但不支持native;在linux系统自带bzip2命令,使用方便 | 压缩/解压速度慢;不支持native |
二、总结
1、不同的场景选择不同的压缩方式,如果选择高压缩比,那么对于cpu的性能要求要高,同事压缩/解压耗时也长;
2、选择压缩比低,对于磁盘Io、网络IO的时间要多,空间占据要多;对于支持分割的,可以实现并行处理。
应用场景:一般用在HDFS、Hive、HBase中会使用,一般较多的是结合Spark来一起使用。
Hadoop数据压缩技术的更多相关文章
- Hadoop(八)Hadoop数据压缩与企业级优化
一 Hadoop数据压缩 1.1 概述 压缩技术能够有效减少底层存储系统(HDFS)读写字节数.压缩提高了网络带宽和磁盘空间的效率.在Hadood下,尤其是数据规模很大和工作负载密集的情况下,使用数据 ...
- Hadoop笔记——技术点汇总
目录 · 概况 · Hadoop · 云计算 · 大数据 · 数据挖掘 · 手工搭建集群 · 引言 · 配置机器名 · 调整时间 · 创建用户 · 安装JDK · 配置文件 · 启动与测试 · Clo ...
- Hadoop记录-技术网站
Grafan监控:http://docs.grafana.org/ Tez:http://tez.apache.org/install.html 阿里巴巴镜像:https://opsx.alibaba ...
- 大数据项目相关技术栈(Hadoop周边技术)
J2EE 框架Spring 开发框架 + SSH or SSM Lucene 索引和查询IKAnalyzer 分词Webmagic 爬虫 ETL工具:KettleSqoop 结构化数据库-hadoop ...
- hadoop行业技术创新解决方案
如今有很多公司都在努力挖掘他们拥有的大量数据,包括结构化.非结构化.半结构化以及二进制数据等,来探索对数据的深入利用. 大多数公司估计他们只分析了已有数据的12%,剩余88%还没有被充分利用.大量的数 ...
- Hadoop生态圈技术图谱
当下Hadoop已经成长为一个庞大的体系,貌似只要和海量数据相关的,没有哪个领域缺少Hadoop的身影,下面是一个Hadoop生态系统的图谱,详细的列举了在Hadoop这个生态系统中出现的各种数据工具 ...
- MapReduce 规划 系列的12 使用Hadoop Streaming技术集成newLISP文字
本文example6环境与前Hadoop 1.x异,于Hadoop 2.x环境测试. 功能与前面相同的日志处理程序. 第一newLISP文字,游玩mapper任务.于stdin读取文本数据,将did由 ...
- Hadoop(22)-Hadoop数据压缩
1.压缩概述 2.压缩策略和原则 3.MapReduce支持的压缩编码 64位系统下的单核i7,Snappy的压缩速率可以达到至少250MB/S,解压缩速率可以达到至少500MB/S 4.压缩方式选择 ...
- about云Hadoop相关技术总结
让你真正明白spark streaminghttp://www.aboutyun.com/forum.php?mod=viewthread&tid=21141(出处: about云开发)
随机推荐
- Atom 必装插件
Atom 必装插件 转载请注明出处. https://blog.csdn.net/Nick_php/article/details/54020956 主题 atom-material-ui 字体配色 ...
- Atcoder Grand Contest 037A(贪心,思维)
#include<bits/stdc++.h>using namespace std;string s;char ans[200007][7];char anss[200007][7];i ...
- spring-cloud-服务调用流程
- SpringBoot 处理异常的几种常见姿势
SpringBoot 处理异常的几种常见姿势 1. 使用 @ControllerAdvice 和 @ExceptionHandler 处理全局异常 这是目前很常用的一种方式,非常推荐.测试代码中用到了 ...
- Python的类(class)和实例(Instance)如何操作使用
面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可 ...
- 用Total Commander替换windos默认资源管理器的方法
Total Commander(简称TC)是一个功能强大的资源管理器. TC本身没有自带的替换windows资源管理器的功能,就必须自己动手解决了. 第一步先Google一下看有没有答案.当时搜出了不 ...
- Vue中img标签src属性绑定
最近刚刚完成了自己的毕业设计项目,整理一下过程中遇到的问题吧~~~ 我做的是一个基于Vue的信息资讯展示与管理平台,显示首页.详情页等的文章内容时就涉及到了图片展示,项目初始时我搭建的是静态网页结构, ...
- Java容器Stack
Stack继承关系 Collection 接口 AbstractCollection AbstractList Vector Stack 方法 public E push 元素在栈顶,最后一个元素 p ...
- Iterator作用
前言 下面的内容是我从百度知道拷贝出来的,也就不在贴出链接了.我总结下就是迭代器在集合中使用,用户不需要关心具体集合实现的是如何遍历(不暴露细节),按照迭代器的方式遍历. 作用 Iterator模式是 ...
- Linux设备树学习
1.概念 设备树用于实现驱动代码与设备信息相分离.驱动代码只负责处理驱动的逻辑而关于设备的具体信息存放到设备树文件中.(dts文件,编译后为dtb文件).一个dts文件对应一个ARM的machine, ...