SequenceFile是由二进制键值对组成的扁平文件。SequenceFile提供了writer、reader和sorter三种类来写、读和排序。
真实的压缩逻辑是使用指定的合适CompressionCodec对key、value进行处理。
SequenceFile文件格式
Header通用头文件格式:
SEQ(3bytes)
Num(1byte数字)
keyClassName
valueClassName
compression(boolean,指明了在文件中是否启用了压缩)
blockCompression(boolean,指明是否是block压缩)
compression codec
Metadata(文件元数据)
Sync(头文件结束标志)
Uncompressed SequenceFile Format:
Header
Record
Record length
Key length
Key
Value
sync-marker,每100字节左右就一个sync标志
Record-Compressed SequenceFile Format:
Header
record
Record length
Key length
Key
Compressed
sync-marker,每100字节左右就一个sync标志
Block-Compressed SequenceFile Format:
Header
Block
Compressed key-lengths block-size
Compressed key-lengths block
Compressed keys block-size
Compressed keys block
Compressed value-lengths block-size
Compressed value-lengths block
Compressed values block-size
Compressed values block
sync-marker,每100字节左右就一个sync标志