如果我有一个id=“my\u row\u id”的行,那么在使用hbase的javaapi时,如何使用“my\u row\u id”来获取此行所在的区域(我正在编写的代码将在每个区域服务器上运行)
我发现这样的例子:
for (JVMClusterUtil.RegionServerThread t : util.getMiniHBaseCluster().getLiveRegionServerThreads()) {
for (HRegionInfo r : t.getRegionServer().getOnlineRegions()) {
if (!Arrays.equals(r.getTableDesc().getName(), "my_table"))) {
continue;
}
HRegion region = t.getRegionServer().getOnlineRegion(r.getRegionName());
}
}
但是util.getminihbasecluster()似乎来自一个测试实用程序,如何在区域服务器上获得jvmclusterutil.regionserverthread的“真实”示例?
1条答案
按热度按时间nzk0hqpo1#
您不需要在每个区域服务器上运行代码来查找行所在的位置。
hbase表具有拆分,这些拆分将数据跨集群中的节点进行分区。这是hbase master使用的元信息。api中也有: