Hive文件存储格式


发布于 2017-04-19 / 21 阅读 / 0 评论 /
Hive存储格式表示表数据在文件中的组织形式。

Hive支持以下六种文件格式:TextFile、RCFile、SequenceFile、AVRO、ORC和Parquet。在建表时使用STORED AS (TextFile|RCFile|SequenceFile|AVRO|ORC|Parquet)来指定存储格式。

1.TextFile

TextFile每一行都是一条记录,每行都以换行符(\n)结尾。数据不做压缩,磁盘开销大,数据解析开销大。

TextFile可结合Gzip、Bzip2使用,但使用这种方式,hive不会对数据进行切分,从而无法对数据进行并行操作。使用方式如下所示:

set hive.exec.compress.output=true;  
set mapred.output.compress=true;  
set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;  
set io.compression.codecs=org.apache.hadoop.io.compress.GzipCodec;  
insert overwrite table textfile_table select * from textfile_table;

2.RCFile

存储方式:数据按行分块,每块按列存储

Record Columnar的缩写,是Hadoop中第一个列式存储格式。能够很好的压缩和快速的查询性能,但是不支持模式演进。是一种行列存储相结合的存储方式。

首先,其将数据按行分块,确保同一行的数据位于同一个块上,避免读一个记录需要读取多个block。其次,块数据列式存储,有利于数据压缩和快速的列存取,并且能跳过不必要的列读取。

3.SequenceFile

参考《Hive文件存储格式——SequenceFile》

4.AVRO

参考《Hive文件存储格式——AVRO》

5.ORC

参考《Hive文件存储格式——ORC》

6.Parquet

参考《Hive文件存储格式——Parquet》