Hadoop的SequenceFile文件<转>

Hadoop的SequenceFile文件<转>_第1张图片

SequenceFile 是 Hadoop 的一个重要数据文件类型,它提供key-value的存储,但与传统key-value存储(比如hash表,btree)不同的是,它是appendonly的,于是你不能对已存在的key进行写操作。每一个key-value记录如下图,不仅保存了key,value值,也保存了他们的长度。

Hadoop的SequenceFile文件<转>_第2张图片

SequenceFile 有三种压缩态:

  1. Uncompressed – 未进行压缩的状态
  2. Record Compressed - 对每一条记录的value值进行了压缩(文件头中包含上使用哪种压缩算法的信息)
  3. Block-Compressed – 当数据量达到一定大小后,将停止写入进行整体压缩,整体压缩的方法是把所有的keylength,key,vlength,value 分别合在一起进行整体压缩

文件的压缩态标识在文件开头的header数据中。

在header数据之后是一个Metadata数据,他是简单的属性/值对,标识文件的一些其他信息。Metadata 在文件创建时就写好了,所以也是不能更改的。

Hadoop的SequenceFile文件<转>_第3张图片


你可能感兴趣的:(Hadoop的SequenceFile文件<转>)