HBase多租户分组
一、分组简介
RegionServer Group 通过对 RegionServer 进行分组,不同的 RegionServer 分到不同的组。每个组可以按需挂载不同的表,并且当组内的表发生异常后,Region 不会迁移到其他的组。这样,每个组就相当于一个逻辑上的子集群,通过这种方式达到资源隔离的效果,降低管理成本,不必为每个高 SLA 的业务线单独搭集群
二、分组配置
2.1 安装好集群后修改配置文件,需要逐个重启master节点
hbase-site.xml
<property> <name>hbase.coprocessor.master.classes</name> <value>org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint</value> </property> <property> <name>hbase.master.loadbalancer.class</name> <value>org.apache.hadoop.hbase.rsgroup.RSGroupBasedLoadBalancer</value> </property>
2.2 查看当前分组
切hbase用户连接hbase hbase shell
list_rsgroups
默认都在default分组里面
2.3 添加分组,添加组后组内没服务器,需要给组分配服务器才可以用
add_rsgroup 'groupName'
2.4 Group分配服务器,腾讯云端口是6002
move_servers_rsgroup 'groupName', ['IP2:16020','IP2:16020']
2.5 把表分配给组
move_tables_rsgroup 'groupName',['test:表名']
2.6 查看表数据哪个分组
get_table_rsgroup 'test:表名'
三、Hbase管理常用命令
list_rsgroups:列出所有的 RS groups,可以使用正则表达式来过滤信息
get_rsgroup:获取某个 RS group 的信息
add_rsgroup:创建一个新的 RS Group
remove_rsgroup:删除某个 RS Group
balance_rsgroup:对某个 RS Group 进行 balance 操作
move_servers_rsgroup:将 RegionServers 从一个组移动到另一个组。 此RS 中的所有 Region 都将移动到另一个 RS 中
move_tables_rsgroup:将表从一个 RS Group 移动另一个 RS Group
move_namespaces_rsgroup:将指定命名空间的表从一个 RS Group 移动另一个 RS Group
move_servers_tables_rsgroup:将 RS 和 Tables 从一个 RS Group 移动另一个 RS Group
move_servers_namespaces_rsgroup:将指定命名空间的 RS 和 Tables 从一个 RS Group 移动另一个 RS Group
get_server_rsgroup:获取给定 RegionServer 所属的 RS Group
get_table_rsgroup:获取给定表所属的 RS Group
remove_servers_rsgroup:从 RS Group 中删除已停用的 Region。 处于 Dead/recovering/live 状态的 Region 将无法操作