说明
- 接到一个需求,需要压测单个RegionServer的性能,但是HBase自带的pe或者YCSB都没有选项支持单个的RegionServer,所以就想到使用RSGroup,将某台RegionServer加入创建的rsgroup中,然后将namespace关联该rsgroup,随后创建的表region都会在单个RegionServer上,压测这张表就相当于压测了单台RegionServer
启用RSGroup
通过CM进入HBase配置搜索hbase.coprocessor.master.classes配置如下
org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint

搜索hbase-site.xml 的 Master 高级配置代码段(安全阀)
name : hbase.master.loadbalancer.classvalue : org.apache.hadoop.hbase.rsgroup.RSGroupBasedLoadBalancer

重新部署客户端配置,重启受影响的角色
常用命令
列出所有的 RegionServer groups
hbase> list_rsgroupshbase> list_rsgroups 'pe_group.*'
获取某个 RegionServer group 的信息
hbase> get_rsgroup 'default'
创建一个新的 RegionServer Group
hbase> add_rsgroup 'pe_group'
删除某个 RegionServer Group
hbase> remove_rsgroup 'pe_group'
对某个 RegionServer Group 进行 balance 操作
hbase> balance_rsgroup 'pe_group'
将 RegionServers 从一个组移动到另一个组。需要注意的是该RegionServer中的Region都会移动到其他的RegionServer中
hbase> move_servers_rsgroup 'pe_group',['server1:port']
将表从一个 RegionServer Group 移动另一个 RegionServer Group
hbase> move_tables_rsgroup 'pe_group',['table1','table2']
将指定命名空间的表从一个 RegionServer Group 移动另一个 RegionServer Group。
hbase> move_namespaces_rsgroup 'pe_group',['ns1','ns2']
将 RegionServers 和 Tables 从一个 RegionServer Group 移动另一个 RegionServer Group。
hbase> move_servers_tables_rsgroup 'dest',['server1:port','server2:port'],['table1','table2']
将指定命名空间的 RegionServers 和 Tables 从一个 RegionServer Group 移动另一个 RegionServer Group
hbase> move_servers_namespaces_rsgroup 'dest',['server1:port','server2:port'],['ns1','ns2']
获取给定 RegionServer 所属的 RegionServer Group
hbase> get_server_rsgroup 'server1:port1'
获取给定表所属的 RegionServer Group
hbase> get_table_rsgroup 'iteblog_Table'
从 RegionServer Group 中删除已停用的 Region。 处于 Dead/recovering/live 状态的 Region 将无法操作
hbase> remove_servers_rsgroup ['server1:port','server2:port']
创建namespace时关联RSGroup
hbase> create_namespace 'pe_namespace', {'hbase.rsgroup.name'=>'pe_group'}
停用RSGroup
将不在default rsgroup中的表全部移动到default rsgroup中
hbase> move_tables_rsgroup 'default',['t1']
将不在default rsgroup中的regionserver全部移动到default rsgroup中
hbase> move_servers_rsgroup 'default',['regionserver1:port','regionserver2:port']
除了default rsgroup 其他的rsgroup全部删除
hbase> remove_rsgroup 'mygroup'
删除hbase:rsgroup表
hbase> disable 'hbase:rsgroup'hbase> drop 'hbase:rsgroup'
删除zk中的rsgroup 节点
rmr /hbase/rsgroup
删除hbase中的配置

- 重新部署客户端 重启HBase
