2017-04-04 54 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(); 
    } 
相關問題