2/15-Hadoop文件格式学习
hdfs文件格式主要有哪些,优点是什么,每个文件格式的压缩比?是什么情况
link
hdfs文件格式可以分为面向行和面向列两大类:
3.1 面向行、面向列文件格式
3.1.1 面向行
有SequenceFile、MapFile、Avro Datafile形式
面向行的文件是将同一行的数据存储在一起,如果只需要访问行的一小部分数据,也需要将整行读入内存。该方式适合于整行数据需要同时处理的情况。
优点:
- 具备快速数据加载和动态负载的高适应能力,因为行存储保证了相同记录的所有域都在同一个集群节点
缺点: - 它不太满足快速的查询响应时间的要求,特别是在当查询仅仅针对所有列中的少数几列时,它就不能直接定位到所需列而跳过不需要的列,由于混合着不同数据值的列,行存储不易获得一个极高的压缩比。
3.1.2 面向列
有Parquet、RCFile、ORCFile形式
面向列的文件被切割为若干列数据,每一列数据一起存储,读取数据时可以跳过不需要的列。
优点:
- 这种结构使得在查询时能够直接读取需要的列而避免不必要列的读取,并且对于相似数据也可以有一个更好的压缩比。
缺点: - 它并不能提供基于Hadoop系统的快速查询处理,也不能保证同一记录的所有列都存储在同一集群节点之上,也不适应高度动态的数据负载模式。
3.2 常用文件格式
常用文件格式包括以下几类:
- TEXTFILE
- SEQUENCEFILE
- RCFILE
- ORCFILE
- Parquet
其中TEXTFILE为默认格式,sequencefile,rcfile,orcfile格式的表不能直接从本地文件导入数据,数据要先导入到textfile格式的表中, 然后再从表中用insert导入sequencefile,rcfile,orcfile表中。
3.2.1 TEXTFILE
默认格式,数据不做压缩,磁盘开销大,数据解析开销大。
可结合Gzip、Bzip2使用?(系统自动检查,执行查询时自动解压),但使用这种方式,hive不会对数据进行切分,从而无法对数据进行并行操作。
create table if not exists textfile_table(
site string,
url string,
pv bigint,
label string)
row format delimited fields terminated by '\t'
stored as textfile;
--插入数据操作:
set hive.