目录表 hbase:meta
作为 HBase 表存在,虽然它会从 HBase shell 的 list
命令中过滤掉,但实际上它也是一个表,像任何其他表一样。
hbase:meta
表(以前称为.META.
)保存系统中所有 region 的列表,hbase:meta
被存储在 ZooKeeper 中。
hbase:meta
表的结构如下:
Key
[table],[region start key],[region id]
)Values
info:regioninfo
(当前 region 的序列化实例 HRegionInfo)
info:server
(包含当前 region 的 RegionServer 的 server:port)
info:serverstartcode
(包含此 region 的 RegionServer 进程的开始时间)
当一个表处于拆分过程中时,将创建额外两个列,称为 “info:splitA” 和 “info:splitB”。这些列代表两个子 region。它们的值也是序列化后的 HRegionInfo 实例。region 分割完成后,最终将删除此行。
HRegionInfo 说明
空白 key 用于表示表的开始和结束。拥有空白开始 key 的 region 是表中的第一个 region。如果某个 region 同时包含空白开始 key 和空白结束 key,则它是表中唯一的 region
在(希望不太可能)需要编程处理目录元数据的场景下,请参阅[RegionInfo.parseFrom](https://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/client/RegionInfo.html#parseFrom-byte:A-)实用程序。
首先,在 ZooKeeper 中查询 hbase:meta
的位置信息。然后,使用服务器和启动编码更新 hbase:meta
的值
有关 region-RegionServer 分配的信息,参阅Region-RegionServer Assignment。