【问题标题】:hbase hot region request metricshbase 热区请求指标
【发布时间】:2017-01-22 23:24:39
【问题描述】:

Hbase 集群,从 master 中,我可以看到其中一个区域比其他区域获得了更多的请求。但是我看不到该服务器中哪个区域更热,请求计数仅报告区域服务器级别,而不是区域级别。我看到一个 jira https://issues.apache.org/jira/browse/HBASE-7818 已经解决了这个问题。但是 JMX 转储没有看到这样的值。我怎么看这个?或者有什么建议可以获取每个区域的读/写请求数?

【问题讨论】:

    标签: hbase


    【解决方案1】:

    Hbase Java Client 已提供 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..
        }
    }
    

    解析regionLoad的内容,得到你想要的。

    【讨论】:

    • 太棒了!非常感谢。花了很长时间在JMX中搜索,似乎从来没有在区域级别被丢弃。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    • 2021-07-09
    相关资源
    最近更新 更多