一、Hadoop常用数据模型(文件存储格式)
1、Text:文本文件通常采用CSV、JSON等固度长度的纯文本格式
优点:
(1)便于与其他应用程序(生成或读取分隔文件)或脚本进行数据交换
(2)易读性好,便于理解
缺点:
(1)数据存储量非常庞大
(2)查询效率不高
(3)不支持块压缩
2、SequenceFile:
(1)SequenceFile按行存储二进制键值对数据,HDFS自带
1)二进制文件直接将<Key,Value>序列化到文件中
2)常用于在MapReduce作业之间传输数据
3)可用作Hadoop中小文件的打包存档(小文件合并)
4)即使在压缩数据时也支持分割、
(2)键值对类型
SequenceFile中的Key和Value可以是任意类型的Writable(org.apache.hadoop.io.Writable)
(3)Java API
org.apache.hadoop.io.SequenceFile
(4)存储结构
记录结构
块结构
0
ps:记录的内部结构取决于是否启用压缩。如果已经启用压缩,则取决于是记录压缩还是数据块压缩
(5)压缩
记录级(RECORD)
块级(BLOCK):一次压缩多条记录,利用记录间的相似性进行压缩,效率更高
(6)读写操作
SequenceFile.Writer (指定为块压缩)
SequenceFile.Reader(读取时能够自动解压)
(7&#x