HBase手动移动Region

当HBase的某个表的region集中在某台RegionServer上时,会出现热点问题,此时为了负载均衡就需要移动均分到其他RS上

一、缘起

最近捣鼓性能测试,创建了200W用户数据。然而,在测试登录接口的性能时,发现请求全落在了同一台RegionServer上,出现了热点问题。最初,想通过HBase的负载均衡策略自动解决这个问题,于是执行了balancer操作,结果热点问题依然存在。最后,在RS UI页面上发现用户数据连续分布在一台RS上,于是想使用手动的方式将region移动到其他几个节点上,实现负载均衡。

二、流程

手动移动region的过程其实很简单,只需一个move命令即可,其使用方式如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
hbase(main):011:0* help 'move'
Move a region. Optionally specify target regionserver else we choose one
at random. NOTE: You pass the encoded region name, not the region name so
this command is a little different to the others. The encoded region name
is the hash suffix on region names: e.g. if the region name were
TestTable,0094429456,1289497600452.527db22f95c8a9e0116f0cc13c680396. then
the encoded region name portion is 527db22f95c8a9e0116f0cc13c680396
A server name is its host, port plus startcode. For example:
host187.example.com,60020,1289493121758
Examples:

hbase> move 'ENCODED_REGIONNAME'
hbase> move 'ENCODED_REGIONNAME', 'SERVER_NAME'

其中,ENCODED_REGIONNAME和SERVER_NAME可以在HBase的UI上获取

三、参考

Hbase region移动_自由盼盼的博客-CSDN博客_hbase 移动region


HBase手动移动Region
https://kuberxy.github.io/2022/04/06/HBase手动移动Region/
作者
Mr.x
发布于
2022年4月6日
许可协议