Apache Hadoop的SequenceFile提供了一种把数据以二进制key-value对的形式保存到hdfs上的方式。跟其他key-value
数据结构相比(比如B-Tree),SequenceFile不能修改、删除数据,也不能在数据中间插入数据。SequenceFile只能往尾
部追加数据。
SequenceFile提供了三种存储形式:
1.Uncompressed Format :无压缩格式 2.Record Compressed :记录压缩格式 3.Block Compressed :块压缩格式
这三种存储格式的header部分都是相同的。他们header部分都包含如下信息,这些信息将被SequenceFile.Reader读取。
1.header部分包括key和value的class类型,SequenceFile.Reader会通过读取这两个属性并通过反射将其实例化; 2.version包括sequenceFile的version信息; 3.Is Compressed用来指定是否是Record Compressed; 4.Is Block Compressed用来指定是否是Block Compressed
5.MetaData是一个key-value的列表结构,可以用来存储文件的元数据。key-value对只能是<Text,Text>类型的。而且该信息
是在SequenceFile.Writer的构造方法写入的。无法修改。
6.
未完待续。。。
[译]SequenceFile、MapFile、SetFile、ArrayFile、BloomMapFile,布布扣,bubuko.com
时间: 2024-10-05 23:43:08