如何避免hbase中行键的热点问题
热点的概念:就是大量的访问都集中在一个或者极少数节点,造成此节点下的服务器超负荷工作
甚至导致region不可用。同时也会影响节点中的其他region,导致主机无法服务其他region
故对rowkey的设计至关总要。
避免热点:
1、加盐,在rowkey的前面加上随机数,使之排序与前面的不同。
分配的前缀种类数量应该和你想使数据分散到不同的 region 的数量一致
如果你有一些 热点 rowkey 反复出现在其他分布均匀的 rwokey 中,加盐是很有用的。
它将写请求分散到多个 RegionServers,但是对读造成了一些负面影响
2、哈希
3、翻转:翻转固定长度或者数字格式的rowkey。这样可以使得rowkey中经常改变的部分(最没意义的部分)放在前面。
这样可以有效的随机 rowkey,但是牺牲了 rowkey 的有序性。
4、尽量减小行和列的大小
5、列簇越短越好