在HBase中,是否有方法获取区域的中间键?
看起来我可以得到这样的中间键:在HBase中,是否有方法获取区域的中间键?,hbase,Hbase,看起来我可以得到这样的中间键: RegionServerServices rss = null; final List<Region> onlineRegions = rss.getOnlineRegions(tableName); for (Region region : onlineRegions) { final List<Store> stores = region.getStores();
RegionServerServices rss = null;
final List<Region> onlineRegions = rss.getOnlineRegions(tableName);
for (Region region : onlineRegions) {
final List<Store> stores = region.getStores();
for (Store store : stores) {
final long storeSize = store.getSize();
final byte[] splitPoint = store.getSplitPoint();
}
}
}
}
RegionServerServices rss=null;
最终列表onlineRegions=rss.getOnlineRegions(tableName);
对于(区域:onlineRegions){
最终列表存储=region.getStores();
适用于(门店:门店){
final long storeSize=store.getSize();
最后一个字节[]splitPoint=store.getSplitPoint();
}
}
}
}
但是,我无法在客户端获得hr区域
或区域
或区域服务器服务
。免责声明:我不确定这种方法有多安全,因为它可能会对hfile设置读锁。我将尝试在快照上使用它,这样我就没事了
此外,你不妨:
- 获取特定柱族的存储中点,然后
- 获取最大门店的中点,当您所在区域有多家门店时,这可能会为您提供更好的近似值
try (Connection connection =
ConnectionFactory.createConnection(hbaseConfig);
Admin admin = connection.getAdmin();) {
final List<HRegionInfo> regionInfoList = admin.getTableRegions(tableName);
HRegionInfo regionInfo = regionInfoList.get(0);
final HRegion region = HRegion.openHRegion(hbaseConfig,
FileSystem.get(hbaseConfig),
new Path("/hbase"),
regionInfo,
table.getTableDescriptor(),
null,
null,
null);
List<Store> stores = region.getStores();
stores.get(0).getSplitPoint();
}
try(连接=
ConnectionFactory.createConnection(hbaseConfig);
Admin=connection.getAdmin();){
最终列表regioninfo=admin.getTableRegions(tableName);
hregoninfo regionInfo=regionInfo.get(0);
最终区域=HRegion.openHRegion(hbaseConfig,
get(hbaseConfig),
新路径(“/hbase”),
regionInfo,
table.getTableDescriptor(),
无效的
无效的
无效);
List stores=region.getStores();
stores.get(0.getSplitPoint();
}