存储和压缩

开启Map输出阶段压缩

减少job中map和reduce task间数据传输量
1.开启hive中间传输数据压缩功能

set hive.exec.compress.intermediate=true;

2.开启mapreduce中map输出压缩功能

set mapreduce.map.output.compress=true;

3.设置mapreduce中map输出数据的压缩方式

set mapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.SnappyCodec;

开启Reduce输出阶段压缩

1.开启hive最终输出数据压缩功能

set hive.exec.compress.output=true;

2.开启mapreduce最终输出数据压缩
···xml
set mapreduce.output.fileoutputformat.compress=true;

3.设置mapreduce最终数据输出压缩方式
```xml
set mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.SnappyCodec;

4.设置mapreduce最终数据输出压缩为块压缩

set mapreduce.output.fileoutputformat.compress.type=BLOCK;

文件存储格式

1.TextFile
默认格式,数据不做压缩,磁盘开销大,数据解析开销大。可结合Gzip、Bzip2使用,但使用Gzip这种方式,hive不会对数据进行切分,从而无法对数据进行并行操作。
2.Orc
是hive 0.11引入的新的存储格式。默认是zlib压缩方式
每个Orc文件由1个或多个stripe组成,每个stripe 250MB大小,这个stripe实际相当于RowGroup概念,不过大小由4MB->250MB,能提升顺序读的吞吐率。每个Stripe有三部分,分别为index data,row data, Stripe Footer。

3.Parquet
面向分析型业务的列式存储格式,以二进制方式存储,不可用直接读取,文件中包括该文件的数据和元数据,因此Parquet是自解析的。

猜你喜欢

转载自www.cnblogs.com/zqzhen/p/12940269.html