regionserver请求不均匀

1、regionserver请求不均匀
1)节点上的regions的个数是否基本一致,如果不一致做balance。

#开启balancer(hbase-0.94)
hbase shell
> balance_switch true

#关闭
> balance_switch false

2)如果region一致的情况下,请求量仍然差异很大,这时候需要排查rowkey的设计和分布。
下面这些节点在regions数量基本一致的情况下,request差异很大。
hbase UI:http://192.168.8.8:60010/master-status

2

2、rowkey hotspotting问题
hbase cf:column的存储按照rowkey的字母表顺序存储,rowkry前缀相同或者相近的行更容易写入到同一个region中,出现热点region,比如日志数据以timestampe开头。
处理方法:
1)逆序存储rowkey,把无序的rowkey部分放到前面。
2)rowkey前面加入随机数字
3)加盐处理(salt)
负面影响:
1) 客户端数据读取更复杂,更多的逻辑代码,甚至影响性能。
2)scan查询不能正常使用。

3、对rowkey加盐(slat)

  private  long DEKHash(String str)
    {
        long hash = str.length();
        for(int i = 0; i < str.length(); i++)
        {
            hash = ((hash << 5) ^ (hash >> 27)) ^ str.charAt(i);
        }
        return hash;
    }

加盐后的效果,已经均匀了很多。

1

此条目发表在hbase分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>