3.初识Hadoop压缩格式

hadoop文件压缩

需求

文件压缩对于大数据量的分布式存储系统而言是必须的,它带来有两个好处:

  • 1.减少文件所需的空间
  • 2.加快网络或磁盘间的传输速度

但是也有不好地方:

  • 1.增大了CPU的负载

根据我们的作业性质选择是否需要压缩

压缩分类

Compression常见分为两大类

  • lossless: 无丢失的压缩方式
  • lossy: 有丢失的压缩方式,常用于视频、图片

下面我们提到的压缩方式都是无丢失的压缩方式

压缩格式

​ Hadoop对前面三种有默认集成,有就是说Hadoop支持DEFLATE、Gzip、bzip2三种压缩格式。而后面三种Hadoop没有支持,要用的话要自己去官网下载相应的源码去编译加入到Hadoop才能用

压缩格式 工具 算法 文件扩展名 是否可拆分
gzip gzip default .gz ×
bzip2 bzip2 bzip2 .bz2
LZO LZO LZO .lzo √(YES if indexed)
LZ4 LZ4 LZ4 .lz4 ×
Snappy N/A Snappy .snappy ×

gzip

优点:

  • 压缩率比较高,
  • 解压速度也比较快
  • hadoop本身支持,linux系统都自带gzip命令

缺点:

  • 不支持split

bzip2

优点:

  • 压缩比较高
  • 支持split
  • Hadoop本身支持,但不支持native

缺点:

  • 压缩/解压速度比较慢

LZO

优点

  • 压缩/解压速度也比较快,合理的压缩率
  • 支持分片,是Hadoop中流行的压缩格式
  • 支持Hadoop native库。

缺点

  • 压缩率比gzip要低一些
  • Hadoop本身不支持,需要安装

snapp

优点:

  • 高速压缩速度和合理的压缩率
  • 支持hadoop native库

缺点

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