hadoop压缩机制

hadoop:压缩机制

4种压缩格式的特征的比较

压缩格式

是否支持split

压缩率

速度

是否hadoop自带

linux命令

换成压缩格式后,原来的应用程序是否要修改

Linux指令操作

gzip

很高

比较快

是,直接使用

和文本处理一样,不需要修改 建议:当把一个文件,通过gzip压缩后,小于或等于128MB时,

压缩:gzip 1.txt 解压缩:gzip -d 1.txt.gz

bzip2

最高

是,直接使用

和文本处理一样,不需要修改

压缩:bzip2 1.txt 解压缩:bzip2 1.txt.bz2

lzo

比较高

很快

否,需要安装

需要建索引,还需要指定输入格式

snappy

比较高

很快

否,需要安装

没有

和文本处理一样,不需要修改

gzip压缩

优点:压缩率比较高,而且压缩/解压速度也比较快;hadoop本身支持,在应用中处理gzip格式的文件就和直接处理文本一样;有hadoop native库;大部分linux系统都自带gzip命令,使用方便。

缺点:不支持split。

应用场景:当每个文件压缩之后在128M以内的(1个块大小内),都可以考虑用gzip压缩格式。譬如说一天或者一个小时的日志压缩成一个gzip文件,运行mapreduce程序的时候通过多个gzip文件达到并发。hive程序,streaming程序,和java写的mapreduce程序完全和文本处理一样,压缩之后原来的程序不需要做任何修改。

bzip2压缩

优点:支持split;具有很高的压缩率,比gzip压缩率都高;hadoop本身支持,但不支持native;在linux系统下自带bzip2命令,使用方便。

缺点:压缩/解压速度慢;不支持native。

应用场景:适合对速度要求不高,但需要较高的压缩率的时候,可以作为mapreduce作业的输出格式;或者输出之后的数据比较大,处理之后的数据需要压缩存档减少磁盘空间并且以后数据用得比较少的情况;或者对单个很大的文本文件想压缩减少存储空间,同时又需要支持split,而且兼容之前的应用程序(即应用程序不需要修改)的情况。

lzo压缩

优点:压缩/解压速度也比较快,合理的压缩率;支持split;支持hadoop native库;可以在linux系统下安装lzop命令,使用方便。

缺点:压缩率比gzip要低一些;hadoop本身不支持,需要安装;在应用中对lzo格式的文件需要做一些特殊处理(为了支持split需要建索引,还需要指定inputformat为lzo格式)。

应用场景:一个很大的文本文件,压缩之后还大于200M以上的可以考虑,而且单个文件越大,lzo优点越越明显

snappy压缩

优点:高速压缩速度和合理的压缩率;支持hadoop native库。

缺点:不支持split;压缩率比gzip要低;hadoop本身不支持,需要安装;linux系统下没有对应的命令。

应用场景:当mapreduce作业的map输出的数据比较大的时候,作为map到reduce的中间数据的压缩格式;或者作为一个mapreduce作业的输出和另外一个mapreduce作业的输入。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • java native关键字

    Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用nativ...

    许喜朝
  • hadoop-core-site.xml配置文件详解

    许喜朝
  • 简单谈一谈前后端分离

    这就还要从 很久很久之前说起!在很久很久以前,没有前端后端之分,在公司除了设计基本都是后端人员,现在前端的工作由后端兼顾着,或者说有很少的一部分前端人员

    许喜朝
  • Python | Time Marker时间标签(附详细注释)

    如果您之前关注过我的内容,可以回忆一下我之前发过两篇关于文章,如果没有可以进入下面链接:

    LogicPanda
  • Web前端 研发模式演变过程

    可称之为 Web 1.0 时代,非常适合创业型小项目,不分前后端,经常 3-5 人搞定所有开发。页面由 JSP、PHP 等工程师在服务端生成,浏览器负责展现。基...

    Javanx
  • AI那么大,我该如何做起——记西浦开放创造实验室workshop: Let's AI together

    “就像汽车改变交通形态一样,你是要成为一个造车的人?还是学会开车?”这是GPU世界总编辑陈泳翰在西交利物浦开放创造实验室举办的workshop上的开场白。 20...

    GPUS Lady
  • 宋宝华:递归的出口在哪里? (除夕创作年度最后一篇文章)

    迭代的是人,递归的是神。递归的出口,在于停止递归。当递归函数在某条件成立后不再调用自身,即意味着递归会终止。

    Linux阅码场
  • 2014年自媒体将走向垂直细分和本地化

    要过年了,除了疯狂抢红包之外,我们做的另外一件事情很可能是聚餐。跟亲戚,跟同学,跟旧友,难免都会小聚一下。如何决定去哪里吃呢?很多吃货朋友竟然是通过自媒...

    罗超频道
  • Vim 常用资源

    mojocn
  • 英文学术写作入门(2) - 论文介绍

    在写引言介绍的时候,主要从这几方面介绍:Hooks,Funnels,and Thesis Statement。

    caoqi95

扫码关注云+社区

领取腾讯云代金券