HBase之常见问题!
HBase之常见问题!
月伴飞鱼热点问题
什么是热点?
检索
HBase
的记录首先要通过Row Key
来定位数据行。当大量的
Client
访问HBase
集群的一个或少数几个节点。造成少数
Region Server
的读/写请求过多、负载过大,而其他Region Server
负载却很小,就造成了 热点 现象。
解决方案:
预分区:
- 目的让表的数据可以均衡的分散在集群中,而不是默认只有一个
Region
分布在集群的一个节点上。加盐:
- 在
Rowkey
的前面增加随机数,具体就是给Rowkey
分配一个随机前缀以使得它和之前的Rowkey
的开头不同。哈希:
- 哈希会使同一行永远用一个前缀加盐。
- 也可以使负载分散到整个集群,但是读是可以预测的。
- 使用确定的哈希可以让客户端重构完整的
Rowkey
,可以使用get
操作准确获取某一个行数据。反转:
- 反转固定长度或者数字格式的
Rowkey
。
- 这样可以使得
Rowkey
中经常改变的部分放在前面。