hadoop 压缩工具 比较
2016-05-25 10:12
218 查看
大数据,算法qq交流群:397173819
hadoop里支持许多压缩算法。压缩的好处主要有两点:1.减少了文件占用的存储空间,原来上T的文件可能压缩完以后只需要两三百G的空间即可;2.文件的体积小了以后,数据传输的速度自然就快了。在现在的大数据环境下,这两点显得更加重要。所以现在hdfs文件系统上存的文件,如果数据量大到一定程度,都需要经过压缩处理。
hadoop上常用的压缩格式包括gzip,lzo,snappy,bzip2。以下我们对这四种压缩算法做个对比。
缺点:不支持split。这个就很要命了,不支持split,那就意味着无论多大的gzip文件,hadoop在处理的时候都只分配一个mapper给这个文件。这显然是不行的。
应用场景:当每个文件压缩之后都在128M以内时,都可以考虑gzip。(因为hadoop默认的是给128M分配一个mapper)不过这条件,实在是太蛋疼。。。所以本博主工作这么些年,从来没有在hdfs上见过gzip的压缩文件。。。
缺点:压缩比相对gzip第一点。但是相比能split这一点,基本可以忽略。hadoop本身没有自带lzo,需要再安装lzo相关的库。在实际使用时,需要对lzo文件建索引,否则hadoop也是会把lzo文件看成一个文件滴。另外在写mr相关代码时,需要
应用场景:hadoop上最流行的压缩格式。本博主实战中接触到的压缩格式都是用的他。
缺点:不支持split,压缩比低于gzip。也需要安装
应用场景:好吧,本博主没用过这种。暂时不太清楚。
缺点:压缩/解压速度慢。这个就比较吃亏了,因为压缩是很耗cpu的操作,如果用他的话集群资源就全被他占了,所以一般实际中用lzo而不用他。
应用场景:肯定就是对压缩比要求很高,但对速度要求不是那么苛刻的场合了。
hadoop里支持许多压缩算法。压缩的好处主要有两点:1.减少了文件占用的存储空间,原来上T的文件可能压缩完以后只需要两三百G的空间即可;2.文件的体积小了以后,数据传输的速度自然就快了。在现在的大数据环境下,这两点显得更加重要。所以现在hdfs文件系统上存的文件,如果数据量大到一定程度,都需要经过压缩处理。
hadoop上常用的压缩格式包括gzip,lzo,snappy,bzip2。以下我们对这四种压缩算法做个对比。
1.gzip
优点:压缩比高,压缩解压的速度也比较快。hadoop本身就支持,自带相关处理gzip文件的jar包。换句话说,你可以像处理普通的文本文件一样处理gzip压缩文件。缺点:不支持split。这个就很要命了,不支持split,那就意味着无论多大的gzip文件,hadoop在处理的时候都只分配一个mapper给这个文件。这显然是不行的。
应用场景:当每个文件压缩之后都在128M以内时,都可以考虑gzip。(因为hadoop默认的是给128M分配一个mapper)不过这条件,实在是太蛋疼。。。所以本博主工作这么些年,从来没有在hdfs上见过gzip的压缩文件。。。
2.lzo
优点:合理的压缩比,压缩解压速度也比较快。最最最重要的是,支持split,所以本博主工作这么些年,hdfs上的文件,一般都采用lzo压缩。缺点:压缩比相对gzip第一点。但是相比能split这一点,基本可以忽略。hadoop本身没有自带lzo,需要再安装lzo相关的库。在实际使用时,需要对lzo文件建索引,否则hadoop也是会把lzo文件看成一个文件滴。另外在写mr相关代码时,需要
setInputFormatClass(LzoTextInputFormat.class);
应用场景:hadoop上最流行的压缩格式。本博主实战中接触到的压缩格式都是用的他。
3.snappy压缩
优点:合理的压缩比,高速压缩速度,支持hadoop native库缺点:不支持split,压缩比低于gzip。也需要安装
应用场景:好吧,本博主没用过这种。暂时不太清楚。
4.bzip2压缩
优点:支持split,很高的压缩比,比gzip还高。hadoop本身也支持缺点:压缩/解压速度慢。这个就比较吃亏了,因为压缩是很耗cpu的操作,如果用他的话集群资源就全被他占了,所以一般实际中用lzo而不用他。
应用场景:肯定就是对压缩比要求很高,但对速度要求不是那么苛刻的场合了。
相关文章推荐
- Linux下NTP服务器配置
- linux内核模块签名(译)
- Sqoop的import和export工具常用选项
- centos 进入docker
- Linux之vi编辑器
- 宏内核与微内核、Linux内核与Unix内核的区别
- OpenGLES---GLSL学习
- Linux命令之dos2unix - 将DOS格式文本文件转换成UNIX格式
- Linux中使用team方法绑定网卡
- 【Linux C/C++】 第02讲 HelloWorld程序编译流程详解
- 转:OpenResty中文官网(通过扩展 NGINX 和 Lua 实现的可伸缩的 Web 平台)
- Linux file system superblock
- linux下QtCreator工程文件中配置Wl,rpath参数
- linux添加开机自动启动程序
- linux nano 编辑器的 使用
- apache配置静态缓存
- System.arraycopy的一些使用。数组的拼接。
- linux时间的查看与修改
- CentOS两台服务器利用scp拷贝文件
- linux系统/var/log目录下的信息详解