Hive中的文件格式
1-TEXTFILE
- 文本格式,Hive的默认格式,数据不压缩,磁盘开销大、数据解析开销大。
- 对应的hive API为:org.apache.hadoop.mapred.TextInputFormat和org.apache.hive.ql.io.HiveIgnoreKeyTextOutputFormat;
- 可结合Gzip、Bzip2使用(系统自动检查,执行查询时自动解压),但是使用这种方式,hive不会对数据进行切分,从而无法对数据进行并行操作
2-SequenceFile
- Hadoop提供的二进制文件,Hadoop支持的标准文件;
- 数据直接序列化到文件中,SequenceFile文件不能直接查看,可以通过Hadoop fs -text查看;
- SequenceFile具有使用方便、可分割、可压缩、可进行切片,压缩支持NONE、RECORD、BLOCK(优先);
- 对应hive API:org.apache.hadoop.mapred.SequenceFileInputFormat和org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
3-RCFILE
- rcfile是一种行列存储相结合的存储方式,先将数据按行进行分块再按列式存储,保证同一条记录在一个块上,避免读取多个块,有利于数据压缩和快速进行列存储;
- 对应 hive API为:org.apache.hadoop.hive.ql.io.RCFileInputFormat和org.apache.hadoop.hive.ql.io.RCFileOutputFormat
4-orcfile
- orcfile式对rcfile的优化,可以提高hive的读写、数据处理性能、提供更高的压缩效率;
- 优点:
- 每个task只输出单个文件,减少namenode负载;<