Sequence有三种不同类型的结构:
未压缩的key/value对
记录压缩的key/value对
Block压缩的key/value对
未压缩和只压缩value的SequenceFile数据格式
Header | Record | Sync-marker |
Header头部格式
version | keyClassName | valueClassName | compression | blockCompression | compressorclass | metadata | sync |
version版本号 占用4个字节
keyClassName和valueClassName 两个都是String类型,记录的是key和value的数据类型
compresion 是bool类型,表示记录是否压缩
blockCompression 是bool类型,表示块是否压缩
compression 压缩类,用于压缩key和value的代码
metadata 元数据
Record格式
record length | key length | key | (Compression) value |
Sync-marker 是一个标记,允许程序快速找到文件中的随机点。注意sync-marker是间隔几百个字节出现一次。形式如下:
Header | Recorder | Recorder | Recorder | Sync | Recorder | Recorder | Recorder | Recorder | Sync |
Block压缩的SequenceFile数据格式