客户端在插入、删除、查询数据时需要知道哪个 Region Server 上存储所需的数据。根据操作的表名和行键rowkey,再按照一定的顺序即可寻找到对应的Region。这个查找 Region 的过程称为 Region 定位。
(1)客户端先通过Zookeeper的/hbase/meta-region-server节点查询到哪台RegionServer上有hbase:meta表。
(2)客户端连接含有hbase:meta表的RegionServer。hbase:meta表存储了所有Region的行键范围信息,通过这个表就可以查询出要存取的rowkey属于哪个Region的范围里面,以及这个Region又是属于哪个RegionServer。
(3)获取这些信息后,客户端就可以直连其中一台拥有要存取的rowkey的RegionServer,并直接对其操作。
(4)客户端会把meta信息缓存起来,下次操作就不需要进行以上加载hbase:meta的步骤了。
备注:.META.表是一张元数据表,它存储了所有Region的简要信息。.META.表中的一行记录就是一个Region,该行记录了该Region的起始行、结束行和该Region的连接信息,这样客户端就可以通过这个来判断需要的数据在哪个Region上。
可以通过使用 scan 命令可查看 Meta 表的结构:scan 'hbase:meta'或者get命令:get 'hbase:meta','testTable'。
本文暂时没有评论,来添加一个吧(●'◡'●)