hbase:meta 表解析

hbase:meta 表中存储了 Hbase 集群中全部表的所有的 region 信息,在 Hbase 2.x 之后新增了表的状态信息。

hbase:meta 表的结构非常简单,在 Hbase 2.x 之前整个表只有一个名为 info 的 ColumnFamily。在 Hbase 2.x 新增表状态信息后,增加了名为 table 的 ColumnFamily。
HBase 保证 hbase:meta 表始终只有一个 Region
,这是为了确保 meta 表多次操作的原子性,因为 HBase 本质上只支持 Region 级别的事务。

示例(Hbase 2.x版本之前)

ROW                                                           COLUMN+CELL
testTable,,1577522582939.b84a96d0e074272569b6fa79946e79df.    column=info:regioninfo, timestamp=1577522584346, value={ENCODED => b84a96d0e074272569b6fa79946e79df, NAME => 'testTable,,1577522582939.b84a96d0e074272569b6fa79946e79df.', STARTKEY => '', ENDKEY => '1'}
testTable,,1577522582939.b84a96d0e074272569b6fa79946e79df.    column=info:seqnumDuringOpen, timestamp=1583992456271, value=\x00\x00\x00\x00\x00\x00\x00[
testTable,,1577522582939.b84a96d0e074272569b6fa79946e79df.    column=info:server, timestamp=1583992456271, value=node1:16020
testTable,,1577522582939.b84a96d0e074272569b6fa79946e79df.    column=info:serverstartcode, timestamp=1583992456271, value=1583992398626

hbase:mate 表所在的 RegionServer 信息被存储到了 zookeeper 中的 /hbase/meta-region-server 节点。通过查询该节点,可以获得 hbase:meta 表在那个 RegionServer。

rowkey

hbase:meta 的一个 rowkey 就对应一个 Region。

hbase:meta 表的 rowkey 结构如下:

TableName,StartKey,Timestamp.EncodedName.

TableName:表名称;
StartKey:表示当前 table 的 region 中存储的第一个 rowkey。如果这个地方为空的话,表明这是 table 的第一个 region。并且如果一个 region 中 StartKey 和 EndKey 都为空的话,表明这个 table 只有一个 region;
Timestamp:Region 创建的时间戳;
EncodedName:TableName,StartKey,Timestamp字符串的MD5 Hex值。

info

每一行数据又分为4列,分别是info:regioninfo、info:seqnumDuringOpen、info:server、info:serverstartcode。
info:regioninfo:该列对应的 Value 主要存储4个信息,即EncodedName、RegionName、Region的StartRow、Region的EndRow。
info:seqnumDuringOpen:该列对应的 Value 主要存储Region打开时的sequenceId。
info:server:该列对应的 Value 主要存储Region落在哪个RegionServer上。
info:serverstartcode:该列对应的 Value 主要存储所在RegionServer的启动Timestamp。

HBase 2.x meta 表变化

在2.x版本中 info 列族中新增了两列,如下所示:

hbase(main):005:0> get 'hbase:meta','testTable,,1590085757075.536cfe1635f52756f11ea4783f04abf1.'
COLUMN                                 CELL
 info:regioninfo                       timestamp=1593325061148, value={ENCODED => 536cfe1635f52756f11ea4783f04abf1, NAME => 'testTable,,1590085757075.536cfe1635f52756f11ea4783f04abf1.', STARTKEY => '', ENDKEY => '001562526'}
 info:seqnumDuringOpen                 timestamp=1593325061148, value=\x00\x00\x00\x00\x02\x5C<\x8C
 info:server                           timestamp=1593325061148, value=node1:16020
 info:serverstartcode                  timestamp=1593325061148, value=1593324095219
 info:sn                               timestamp=1593325059774, value=node1,16020,1593324095219
 info:state                            timestamp=1593325061148, value=OPEN

新增内容
info:sn:该列对应的 value 由 server 和 serverstartcode 组成
info:state:该列对应的 value 表示 Region 状态

在2.x版本中新增 table 列族,用于存储表信息,目前该列族下仅有 state 一列,用于存储表的状态,如下所示

get 'hbase:meta','testTable'
COLUMN                                                   CELL
 table:state                                             timestamp=1594952584371, value=\x08\x00

其中:
\x08\x00 表示 ENABLED 状态
\x08\x01 表示 DISABLED 状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值