gzip,bzip2,lzo,snappy是hadoop中比较常见的文件压缩格式,可以节省很多硬盘存储,以下是Gzip , BZip2 , Lzo Snappy 四种方式的优缺点 和使用场景

Gzip

优点:

  1.压缩解压速度快 , 压缩率高 , hadoop本身支持

  2.处理压缩文件时方便 , 和处理文本一样

  3.大部分linux 系统自带 Gzip 命令 , 使用方便

缺点:

  不支持切片

使用场景:

  1.文件压缩后在130M以内 (一个块大小) , 都可以使用 GZip 压缩(因为Gzip唯一的缺点是不能切片)

  2.总结 : 不需要切片的情况下 可以使用

Bzip2

优点:

  1.压缩率高(高于Gzip)

  2.可以切片

  3.hadoop自带 使用方便

缺点:

  压缩解压速度超级慢

使用场景:

  1.不要求压缩速率 ,但是对压缩率有要求的情况下 比如备份历史记录 , 备份文件

  2.输出的文件较大 , 处理后的数据需要减少磁盘存储并且以后使用数据的情况较少 (解压 / 压缩的情况较少)

  3.对于单个文件 较大 ,又想压缩减少磁盘空间 , 并且兼容之前的应用程序的情况

  4.总结 : 对于压缩解压速度没有要求的情况下

Lzo

优点:

  1.压缩解压速度比较快 , 压缩率也可以

  2.支持切片 是hadoop 比较流行的压缩格式

  3.可以在linux 下安装 lzo命令 使用方便

缺点:

  1.压缩率比Gzip低一些
  2.hadoop 本身不支持, 需要自己安装

  3.使用Lzo 格式的文件时需要做一些特殊处理(为了支持 Split 需要建立索引 , 还需要家将 InputFormat 指定为Lzo 格式 [特殊]

使用场景:

  1.压缩以后还大于 200M 的文件 , 且文件越大Lzo 的优势越明显

  2.(原因很简单 , 四种压缩方式 只有BZip2 , Gzip 支持切片 , 然后 BZip2 你懂的 , 速度贼慢 , 只能用于特定的场景, 所以 Lzo 是比较经常用的 )

  3.总结 : 压缩后文件还是比较大 需要切片的情况下 推荐使用

Snappy

优点:

  高压缩解压速度 , 压缩率还可以

缺点:

  1.不能切片

  2.压缩率比Gzip小

  3.hadoop本身不支持 需要安装

使用场景:

  1.当Mapeduce的Map阶段输出的数据比较大的时候 , 作为Map到Reduce的中间数据的压缩格式

  2.作为一个MapReduce作业的输出和另一个MapReduce的输入

  3.总结 : 因为 压缩率不怎么样 还不能切片 , 所以在一般的作为输入文件压缩时可以用 GZip 和 Lzo 都比Snappy snappy压缩率要高于lzo

总结 :

压缩速率 : Snappy > GZIp > Lzo >BZip2

支持切片 : BZIp2 LZo

压缩率 : BZip2 > GZip > Lzo > Snappy

特殊 : Lzo Snappy hadoop 本身不支持 , 需要自行安装 并且 Lzo 需要建立索引

不同意见和补充
压缩率:snappy压缩率要高于lzo,博主公司也在同时使用lzo与snappy压缩格式。博主公司每日的数据为1.5T,在经过lzo压缩后可以维持在600g——700g之间;然而snappy格式压缩完后只有300g——400g,几乎为lzo的两倍。

————————————————
版权声明:本文为CSDN博主「bm8836900」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/bm8836900/article/details/87913861

Gzip,BZip2,Lzo,Snappy总结的更多相关文章

  1. HBase中的压缩算法比较 GZIP、LZO、Zippy、Snappy [转]

    网址: http://www.cnblogs.com/panfeng412/archive/2012/12/24/applications-scenario-summary-of-compressio ...

  2. lesson - 8 课程笔记 tar / gzip /bzip2 / xz /

    作用:为linux的文件和目录创建档案,也可以在档案中改变文件,或者向档案中加入新的文件即用来压缩和解压文件.tar本身不具有压缩功能.他是调用压缩功能实现的  语法:tar[必要参数][选择参数][ ...

  3. [拾 得] zip gzip bzip2 & tar 压缩/打包 四大金刚

    坚持知识分享,该文章由Alopex编著, 转载请注明源地址: http://www.cnblogs.com/alopex/    索引: 介绍压缩和打包 gzip bzip2 zip 的基本使用 gz ...

  4. centos 文档的压缩和打包 gzip,bzip2,xz,zip,unzip,tar,tgz 第九节课

    centos  文档的压缩和打包   gzip,bzip2,xz,zip,unzip,tar,tgz  第九节课 SAS盘可以支持热插拔,看机器 tar.zip.tar -czvf 不会动源文件,gz ...

  5. gzip,bzip2,xz压缩工具

    gzip,bzip2,xz压缩工具====================== gzip压缩工具 示例:[root@aminglinux yasuo]# ls1.txt 2.txt 3.txt[roo ...

  6. [CentOS7] gzip, bzip2, xz 压缩与解压缩

    声明:本文主要总结自:鸟哥的Linux私房菜-第八章.檔案與檔案系統的壓縮,打包與備份,如有侵权,请通知博主 gzip命令: 选项参数: -c :将压缩后的数据显示到屏幕上,可以用于重定向: -d : ...

  7. 压缩和解压文件:tar gzip bzip2 compress(转)

    tar[必要参数][选择参数][文件] 压缩:tar -czvf filename.tar.gz targetfile解压:tar -zxvf filename.tar.gz参数说明: -c 建立新的 ...

  8. linux下压缩与打包工具——gzip, bzip2 和 tar;

    以下内容来自:阿铭http://www.apelearn.com/study_v2/chapter11.html, 把常用的写出来了:感觉可以了: 只管压缩与解压缩的工具: gzip 工具: 用的时候 ...

  9. (转)linux下压缩和归档相关命令tar,zip,gzip,bzip2

    压缩包也有两种形式,一种是tar.gz包(.tgz包也是这种),一种是tar.bz2包. tar.gz包的解压方法:tar zxvf [PackageName].tar.gz tar.bz2包的解压方 ...

随机推荐

  1. Redis5源码解析-Sentinel

    简单的概念就不解释.基于Redis5.0.5 从Sentinel主函数触发 在sentinel.c文件的最后面可以发现sentinelTimer函数,这个就是Sentinel的主函数,sentinel ...

  2. 如何使用git上传代码

    首先在github 上创建好远程仓库,并拷贝仓库地址,接下来按照以下步骤:   1.打开命令行进入要上传的文件目录,初始化 git init  2. 建立远程仓库,git remote add ori ...

  3. Mac tensorflow mnist实例

    Mac tensorflow mnist实例 前期主要需要安装好tensorflow的环境,Mac 如果只涉及到CPU的版本,推荐使用pip3,傻瓜式安装,一行命令!代码使用python3. 在此附上 ...

  4. TCP/IP协议第一卷第三章 IP首部分析

    IP介绍 IP是TCP/IP协议族中最为核心的协议.所有的TCP.UDP.ICMP.IGMP数据都以IP数据报格式传输. IP提供不可靠.无连接的数据报传送服务. 不可靠(unreliable)它不能 ...

  5. Lucas的数论:杜教筛,莫比乌斯反演

    Description: 求$\sum\limits_{i=1}^{n} \sum\limits_{j=1}^{n} d(i \times j)$ $d(i)$表示$i$的约数个数和.$n \leq ...

  6. 随(rand):原根,循环矩阵,dp

    20分特判,一个puts("1")一个快速幂,不讲. 50%算法: 上次就讲了,可是应该还是有像 xuefen某 或 Dybal某 一样没听的. 用a×inv(b)%mod来表示分 ...

  7. python之变量名

    在python中,变量不需要提前声明,创建时直接对其赋值即可,变量类型由赋给变量的值决定.值得注意的是,一旦创建了一个变量,就需要给该变量赋值. 变量名应严格遵守以下规则: 1.变量名只能包含:字母/ ...

  8. MATLAB基本使用及SIMULINK建模仿真实验

    MATLAB基本使用及SIMULINK建模仿真实验 这是我总结的操作方法: 1 )  M脚本文件的编写 1.新建M-file: 2.输入指令: 3.保存(注意:保存路径需要与工作路径一致) 2 )在S ...

  9. linux4.1内核配置以及编译及千兆网卡dp83867网卡驱动移植

    一  内核配置编译 1首先解压内核 tar jxvf linux-at91-4.1.tar.bz2: 2下载编译链 在ubuntu命令行中输入sudo apt-get install gcc-arm- ...

  10. 读《MySQL必知必会》我学到了什么?

    前言 最近在写项目的时候发现自己的SQL基本功有些薄弱,遂上知乎查询MYSQL关键字,期望得到某些高赞答案的指点,于是乎发现了 https://www.zhihu.com/question/34840 ...