说明

  1. 接到一个需求,需要压测单个RegionServer的性能,但是HBase自带的pe或者YCSB都没有选项支持单个的RegionServer,所以就想到使用RSGroup,将某台RegionServer加入创建的rsgroup中,然后将namespace关联该rsgroup,随后创建的表region都会在单个RegionServer上,压测这张表就相当于压测了单台RegionServer

启用RSGroup

  1. 通过CM进入HBase配置搜索hbase.coprocessor.master.classes配置如下

    1. org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint

    image.png

  2. 搜索hbase-site.xml 的 Master 高级配置代码段(安全阀)

    1. name : hbase.master.loadbalancer.class
    2. value : org.apache.hadoop.hbase.rsgroup.RSGroupBasedLoadBalancer

    image.png

  3. 重新部署客户端配置,重启受影响的角色

常用命令

  1. 列出所有的 RegionServer groups

    1. hbase> list_rsgroups
    2. hbase> list_rsgroups 'pe_group.*'
  2. 获取某个 RegionServer group 的信息

    1. hbase> get_rsgroup 'default'
  3. 创建一个新的 RegionServer Group

    1. hbase> add_rsgroup 'pe_group'
  4. 删除某个 RegionServer Group

    1. hbase> remove_rsgroup 'pe_group'
  5. 对某个 RegionServer Group 进行 balance 操作

    1. hbase> balance_rsgroup 'pe_group'
  6. 将 RegionServers 从一个组移动到另一个组。需要注意的是该RegionServer中的Region都会移动到其他的RegionServer中

    1. hbase> move_servers_rsgroup 'pe_group',['server1:port']


  7. 将表从一个 RegionServer Group 移动另一个 RegionServer Group

    1. hbase> move_tables_rsgroup 'pe_group',['table1','table2']
  8. 将指定命名空间的表从一个 RegionServer Group 移动另一个 RegionServer Group。

    1. hbase> move_namespaces_rsgroup 'pe_group',['ns1','ns2']
  9. 将 RegionServers 和 Tables 从一个 RegionServer Group 移动另一个 RegionServer Group。

    1. hbase> move_servers_tables_rsgroup 'dest',['server1:port','server2:port'],['table1','table2']
  10. 将指定命名空间的 RegionServers 和 Tables 从一个 RegionServer Group 移动另一个 RegionServer Group

    1. hbase> move_servers_namespaces_rsgroup 'dest',['server1:port','server2:port'],['ns1','ns2']
  11. 获取给定 RegionServer 所属的 RegionServer Group

    1. hbase> get_server_rsgroup 'server1:port1'
  12. 获取给定表所属的 RegionServer Group

    1. hbase> get_table_rsgroup 'iteblog_Table'
  13. 从 RegionServer Group 中删除已停用的 Region。 处于 Dead/recovering/live 状态的 Region 将无法操作

    1. hbase> remove_servers_rsgroup ['server1:port','server2:port']
  14. 创建namespace时关联RSGroup

    1. hbase> create_namespace 'pe_namespace', {'hbase.rsgroup.name'=>'pe_group'}

    停用RSGroup

  15. 将不在default rsgroup中的表全部移动到default rsgroup中

    1. hbase> move_tables_rsgroup 'default',['t1']
  16. 将不在default rsgroup中的regionserver全部移动到default rsgroup中

    1. hbase> move_servers_rsgroup 'default',['regionserver1:port','regionserver2:port']
  17. 除了default rsgroup 其他的rsgroup全部删除

    1. hbase> remove_rsgroup 'mygroup'
  18. 删除hbase:rsgroup表

    1. hbase> disable 'hbase:rsgroup'
    2. hbase> drop 'hbase:rsgroup'
  19. 删除zk中的rsgroup 节点

    1. rmr /hbase/rsgroup
  20. 删除hbase中的配置

image.png

  1. 重新部署客户端 重启HBase