Hive 之 压缩和存储

本文详细介绍了Hive中压缩和存储的相关知识,包括MR压缩编码、压缩参数配置、开启MapReduce阶段的压缩,以及行存储与列存储的区别。重点对比了TextFile、Orc和Parquet格式,通过实验展示了存储文件的压缩比和查询速度。Orc格式因其优秀的压缩比和查询性能受到企业青睐,Snappy作为常用的压缩算法也有良好表现。
摘要由CSDN通过智能技术生成

欢迎大家扫码关注我的微信公众号:
数据之恋

一、 压缩

1.1 MR 支持的压缩编码

压缩格式 工具 算法 文件扩展名 是否可切分
DEFAULT DEFAULT .deflate
Gzip gzip DEFAULT .gz
bzip2 bzip2 bzip2 .bz2
LZO lzop LZO .lzo
Snappy Snappy .snappy

为了支持多种压缩/解压缩算法, 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.compression.lzo.LzopCodec
Snappy org.apache.hadoop.io.compress.SnappyCodec

压缩性能比较:

压缩算法 原始文件大小 压缩文件大小 压缩速度 解压速度
gzip 8.3GB 1.8GB 17.5MB/s 58MB/s
bzip2 8.3GB 1.1GB 2.4MB/s 9.5MB/s
LZO 8.3GB 2.9GB 49.3MB/s 74.6MB/s
http://google.github.io/snappy/
On a single core of a Core i7 processor in 64-bit mode, Snappy compresses at about 250 MB/sec or more and decompresses at about 500 MB/sec or more

1.2 压缩参数配置

参数 默认值 阶段 建议
io.compression.codecs (在 core-site.xml 中配置) org.apache.hadoop.io.compress.DefaultCodec,
org.apache.hadoop.io.compress.GzipCodec,
org.apache.hadoop.io.compress.BZip2Codec,
org.apache.hadoop.io.compress.Lz4Codec
输入压缩 Hadoop 使用文件扩展名判断是否支持某种编解码器
mapreduce.map.output.compress false mapper 输出 这个参数设为 true 启用压缩
mapreduce.map.output.compress.codec org.apache.hadoop.io.compress.DefaultCodec mapper 输出 使用 LZO、LZ4 或 snappy 编解码器在此阶段压缩数据
mapreduce.output.fileoutputformat.compress false reducer 输出 这个参数设为 true 启用压缩
mapreduce.output.fileoutputformat.compress.codec org.apache.hadoop.io.compress.DefaultCodec reducer 输出 使用标准工具或者编解码器,如 gzip 和 bzip2
mapreduce.output.fileoutputformat.compress.type RECORD reducer 输出 SequenceFile 输出使用的压缩类型:NONE 和 BLOCK

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值