0%

HBase Meta 表

HBase Meta 表


前言

目录表 hbase:meta 作为HBase 表存在,并从 HBase shell 的list命令中过滤掉(命名空间”hbase”下的表都会过滤掉),但实际上是一个表,就像任何其他表一样。

meta 表

hbase:meta 表属于系统表

META表是一个保存的了系统中所有 Region 列表的 HBase 表

它保存在一个 RS 上面,那如何去知道它在哪个 RS 上呢? 这就要利用 zk 了

meta 表的地址信息保存在 zk 的 /hbase 路径下的 meta-region-server 节点上

表结构

Key: Region key of the format ([table表名],[region start key起始键],[region id])

region id 由该 region 生成的时间戳(精确到毫秒)与 region encoded 组成
region encoded 由 region 所在的 表名, StartKey, 时间戳这三者的MD5值产生, HBase 在 HDFS 上存储 region 的路径就是 region encoded。

key 被用来表示 region name

values:

  • info:regioninfo, RegionInfo 的 encodeValue值

  • info:seqnumDuringOpen, 序列号

  • info:server, Region 所在的 RS

  • info:serverstartcode, RS 启动的 timestamp

关于 HRegionInfo 的注释

空键用于表示表开始和表结束。具有空开始键的区域是表中的第一个区域。如果某个区域同时具有空开始和空结束键,则它是表中唯一的区域

2.x 变化

HBase 2.x meta 表有所变化

列名 说明
info:state Region状态
info:sn Region Server Node,由 server 和 serverstartcode 组成
info:serverstartcode Region Server启动Code,实质上就是Region Server启动的时间戳
info:server Region Server 地址和端口
info:seqnumDuringOpen 表示Region在线时长的一个二进制串
info:regioninfo Region 的详细信息,和 .regioninfo 内容相同

其中,regioninfo 是重要信息

  • ENCODED:基于${表名},${起始键},${region时间戳}生成的32位md5字符串,region数据存储在hdfs上时使用的唯一编号,可以从meta表中根据该值定位到hdfs中的具体路径。 rowkey中最后的${encode编码}就是 ENCODED 的值,其是rowkey组成的一部分。
  • NAME:与 ROWKEY 值相同
  • STARTKEY:该 region 的起始键
  • ENDKEY:该 region 的结束键

参考链接