前言

本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系

正文

1 数据的压缩说明

压缩模式评价

  • 可使用以下三种标准对压缩方式进行评价
  1. 压缩比:压缩比越高,压缩后文件越小,所以压缩比越高越好
  2. 压缩时间:越快越好
  3. 已经压缩的格式文件是否可以再分割:可以分割的格式允许单一文件由多个 Mapper 程序处理,可以更好的并行化

常见压缩格式

对比

压缩方式 压缩比 压缩速度 解压缩速度 是否可分割
gzip 13.4% 21 MB/s 118 MB/s
bzip2 13.2% 2.4MB/s 9.5MB/s
lzo 20.5% 135 MB/s 410 MB/s
snappy 22.2% 172 MB/s 409 MB/s

更多内容请参考我的这篇博客——数据压缩算法该如何选择?

Hadoop编码/解码器方式

压缩格式 对应的编码/解码器
DEFLATE org.apache.hadoop.io.compress.DefaultCodec
Gzip org.apache.hadoop.io.compress.GzipCodec
BZip2 org.apache.hadoop.io.compress.BZip2Codec
LZO com.hadoop.compress.lzo.LzopCodec
Snappy org.apache.hadoop.io.compress.SnappyCodec

1.2 数据压缩使用

Hive表中间数据压缩

#设置为true为激活中间数据压缩功能,默认是false,没有开启
set hive.exec.compress.intermediate=true;
#设置中间数据的压缩算法
set mapred.map.output.compression.codec= org.apache.hadoop.io.compress.SnappyCodec;

Hive表最终输出结果压缩

set hive.exec.compress.output=true;
set mapred.output.compression.codec= 
org.apache.hadoop.io.compress.SnappyCodec;
上一篇 下一篇