2016-09-15 2 views
2

Hbaseクラスタは、マスターから、私は地域の1つが他のものより多くの要求を得ることがわかります。このサーバーのどの地域が熱くなっているのかわかりませんが、リクエスト数はリージョンサーバーレベルでのみレポートされますが、地域レベルではレポートされません。 jira https://issues.apache.org/jira/browse/HBASE-7818が既にこれを修正しています。 JMXダンプはそのような値を見ません。どのように私はこれを見ますか?またはリージョンごとに読み書きするrequset番号を得るための提案?hbaseホットリージョンリクエストメトリック

答えて

1

Hbase Javaクライアントは、地域レベルの読み込みを行うためのAPIを提供しています。
私が使用しているクライアントは、例の場合は1.2.0-cdh5.7.0、YMMVはhbase-clientのバージョンによって異なります。

ClusterStatus clusterStatus = yourHbaseConnection.getAdmin().getClusterStatus(); 
Collection<ServerName> servers = clusterStatus.getServers(); 

for (ServerName serverName : servers) { 
    ServerLoad serverLoad = clusterStatus.getLoad(serverName); 
    Map<byte[], RegionLoad> regionLoads = serverLoad.getRegionsLoad(); 

    for (Map.Entry<byte[], RegionLoad> regionLoad : regionLoads.entrySet()) { 
     // regionLoad is all you want, contains readRequest, writeRequest etc.. 
    } 
} 

あなたが欲しいものを取得してください。

+0

素晴らしい!どうもありがとう。 JMXで検索するのに長い時間を費やし、決して地域レベルで放棄されないようです。 – Nan