2017-04-04 77 views
0

它看起来像我能得到中间关键,像这样:HBase有没有办法让我获得一个区域的中键?

 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(); 

      } 
     } 
    } 
} 

但是,没有办法,我得到一个HRegionRegion或在客户端上一个RegionServerService

回答

0

免责声明:我不知道这种方法的安全性如何的,因为它可以把一个读锁定在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(); 
    } 
相关问题