hbase获取region以及读取每个region的第一行
@(HBASE)[hbase]
1、通过HRegionInfo可以获取region的详细信息
2、Scan#setBatch(1)可以指定每次读取多少行,但必须马上Scan#close(),否则会一直读下去。
private static void checkTable(String tabName) {
TableName tn = TableName.valueOf(tabName);
Configuration config = HBaseConfiguration.create();
HRegionInfo regionInfo;
try (Connection connection = ConnectionFactory.createConnection(config);
Admin admin = connection.getAdmin();
Table table = connection.getTable(tn);) {
if(!admin.tableExists(TableName.valueOf(tabName))){
addAlarm(AlarmType.TABLE_NOT_FOUND,tabName);
return;
}
List<HRegionInfo> lr = admin.getTableRegions(tn);
Result r = null;
if(lr == null){
log.warn("No region found for table " + tabName);
}
// 遍历表的每个region