hbase 快速入门之---HFILE数据格式

本文介绍了HBase的HFile数据格式,包括Trailer、FileInfo、Data Index、Meta Index和Data Block等组成部分。Data Block作为基本I/O单元,其大小可调,影响顺序Scan和随机查询效率。KeyValue结构中包含了RowKey、Column Family、Qualifier、Time Stamp和Key Type等信息。根据访问模式,适当调整Data Block大小能优化HBase性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


ØHFile文件不定长,长度固定的块只有两个:TrailerFileInfo
ØHFile写到硬盘时,Trailer被写到最后。 Trailer中指针指向其他数据块的起始点。
ØFile Info中记录了文件的一些Meta信息,例如:AVG_KEY_LEN, AVG_VALUE_LEN, LAST_KEY, COMPARATOR, MAX_SEQ_ID_KEY
ØData IndexMeta Index块记录了每个Data块和Meta块的起始点
ØData BlockHBase I/O的基本单元,为了提高效率,HRegionServer中有基于LRUBlock Cache机制
Ø每个Data Block的大小可以在创建一个Table的时候通过参数指定,大号的Block有利于顺序Scan,小号Block利于随机查询
Ø每个Data Block除了开头的Magic以外就是一个个KeyValue对拼接而成, Magic内容就是一些随机数字,目的是防止数据损坏
HFile里面的每个KeyValue对就是一个简单的byte数组。这个byte数组里面包含了很多项,并且有固定的结构。

ØKeyLengthValueLength:两个固定的长度,分别代表KeyValue的长度
ØKey部分
Row Length是固定长度的数值,表示RowKey的长度,Row就是RowKey
Column Family Length是固定长度的数值,表示Family的长度,接着就是Column Family,再接着是Qualifier,然后是两个固定长度的数值,表示Time StampKey Type(Put/Delete)Value部分没有这么复杂的结构,就是纯粹的二进制数据
HFile 中的数据块大小默认为 64KB。如果访问 HBase 数据库的场景多为有序的访问,那么建议将该值设置的大一些。如果场景多为随机访问,那么建议将该值设置的小一些。一般情况下,通过调整该值可以提高 HBase 的性能。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值