文章插图
StoreFile是HBase存储数据的文件格式 。
HFile的逻辑结构HFile逻辑结构图HFile的逻辑结构
逻辑结构说明4大部分
- Scanned block section
- 扫描StoreFile时,所有的Data Block(数据块)都将会被读取
- Leaf Index(LSM + C1树索引)、Bloom block(布隆过滤器)都会被读取
- Non-scanned block section
- 扫描StoreFile时,不会被读取
- 包含MetaBlock和Intermediate Level Data Index Blocks
- Opening-time data section
- 在RegionServer启动时,需要将数据加载到内存中,包括数据块索引、元数据索引、布隆过滤器、文件信息 。
- Trailer
- 记录了HFile的基本信息
- 各个部分的偏移值和寻址信息
StoreFile物理结构
- HFile文件是不定长的,长度固定的只有其中的两块:Trailer和FileInfo 。正如图中所示的,Trailer中有指针指向其他数 据块的起始点 。
- File Info中记录了文件的一些Meta信息,例如:AVG_KEY_LEN, AVG_VALUE_LEN, LAST_KEY, COMPARATOR, MAX_SEQ_ID_KEY等
- Data Index和Meta Index块记录了每个Data块和Meta块的起始点 。
- Data Block是HBase I/O的基本单元,为了提高效率,HRegionServer中有基于LRU的Block Cache机制 。每个Data块的大小可以在创建一个Table的时候通过参数指定,大号的Block有利于顺序Scan,小号Block利于随机查询 。每个Data块除了开头的Magic以外就是一个个KeyValue对拼接而成, Magic内容就是一些随机数字,目的是防止数据损坏 。
- HFile里面的每个KeyValue对就是一个简单的byte数组 。但是这个byte数组里面包含了很多项,并且有固定的结构 。我们来看看里面的具体结构:
- 开始是两个固定长度的数值,分别表示Key的长度和Value的长度
- 紧接着是Key,开始是固定长度的数值,表示RowKey的长度
- 紧接着是 RowKey,然后是固定长度的数值,表示Family的长度
- 然后是Family,接着是Qualifier
- 然后是两个固定长度的数值,表示Time Stamp和Key Type(Put/Delete)——每一种操作都会生成一个Key-Value 。Value部分没有这么复杂的结构,就是纯粹的二进制数据了 。
- Data Block段
- Meta Block段 (可选的)
- File Info段
- Data Block Index段
- Meta Block Index段 (可选的)
- Trailer
【HBase存储数据的文件格式是什么 hbase中数据存储的文件格式是什么】
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- 适合从事大数据行业的三大生肖,适合从事大数据行业的3大生肖
- 数据之间的平均数与方差的规律 数据的平均数和方差
- 什么是GDP 什么是GDP数据
- 手机WiFi和数据同时开会怎样 WiFi和数据同时开
- 数据带你看白鹤滩水电站有多牛 白鹤滩水电站到底有多大
- 门边多3㎡地,干脆把这里改成U型衣帽间使用,存储空间更多了
- 大数据告诉你:各大城市谁和谁最亲近?
- 数据输入与编辑 数据的输入与编辑
- 通过企业微信名片添加好友怎么统计数据 企业微信添加好友记录
- 内蒙古人口数据公布:12个盟市中有6个盟市常住人口增加