HFile文件格式
文件结构如上图。主要有以下部分:
- Data-block:数据块,每个块中存放多个
KeyValue
对象。默认每个块64KB。但不是严格意义上的64KB,大致维持在64KB左右。 - Meta-block:储存元数据信息
- File Info:储存HFile文件信息
- Trailer:包含指向其他块的指针。Trailer写完了才能算一个完整的HFile文件。
通过以下工具可以手动解析HFile文件:
bin/hbase org.apache.hadoop.hbase.io.hfile.HFile -f 文件全路径 -v -m -p
KeyValue格式如下:
可以看到Key中包含列族名、列名,这种重复数据会浪费内存。储存的时候如果用了压缩,这些重复数据可以消除掉。
参考资料:http://blog.csdn.net/javaman_chen/article/details/47833715