原创

HBase 多租户:RegionServer Group

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://it007.blog.csdn.net/article/details/100740672

RegionServer Group 通过对 RegionServer 进行分组,不同的 RegionServer 分到不同的组。每个组可以按需挂载不同的表,并且当组内的表发生异常后,Region 不会迁移到其他的组。这样,每个组就相当于一个逻辑上的子集群,通过这种方式达到资源隔离的效果,降低管理成本,不必为每个高 SLA 的业务线单独搭集群。
不过目前hbase的不同rsgroup之间还是有影响的,他们底层都是使用的同一个hadoop。

我们使用的hbase集群是hbase2.1.5版本。环境搭建参见hbase 2.1 环境搭建–完全分布式模式 Advanced - Fully Distributed

想要使用rsgroup功能,需要再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>

重启hbase集群。

先建一个表用于测试:

create 'test:lbltest','0'

查看表属于哪个rsgroup

hbase(main):012:0> get_table_rsgroup 'test:lbltest'
default

可以看到默认是建到default组中。

添加一个rsgroup

hbase(main):020:0> add_rsgroup 'testgroup'
Took 0.0444 seconds
hbase(main):021:0> list_rsgroups
NAME                                            SERVER / TABLE
 testgroup
 default                                    server IP1:16020
                                            server IP2:16020
                                            table hbase:meta
                                            table hbase:namespace
                                            table hbase:rsgroup

目前testgroup还没有分配机器,还不能用。现在将IP1:16020移动到testgroup中

hbase(main):021:0> move_servers_rsgroup 'testgroup', ['IP1:16020']
hbase(main):021:0> list_rsgroups
NAME                                            SERVER / TABLE
 testgroup                                 server IP1:16020
 default                                   server IP2:16020
                                            table hbase:meta
                                            table hbase:namespace
                                            table hbase:rsgroup

接下来将刚才建的表test:lbltest移动到testgroup中。

move_tables_rsgroup 'testgroup',['test:lbltest']

查看所属组

hbase(main):015:0> get_table_rsgroup 'test:lbltest'
testgroup 
hbase(main):016:0> list_rsgroups
NAME                                             SERVER / TABLE                                                                                                                                
 testgroup                                       server IP1:16020                                                                                             
                                                 table test:lbltest                                                                                                                            
 default                                         server IP2:16020

在hbase控制台查看rsgroup:
在这里插入图片描述

rsgroup相关命令:

  • list_rsgroups:列出所有的 RegionServer groups,我们可以在这个命令的后面使用正则表达式来过滤一些我们要的信息。

  • get_rsgroup:获取某个 RegionServer group 的信息。

  • add_rsgroup:创建一个新的 RegionServer Group。

  • remove_rsgroup:删除某个 RegionServer Group。

  • balance_rsgroup:对某个 RegionServer Group 进行 balance 操作。

  • move_servers_rsgroup:将 RegionServers 从一个组移动到另一个组。 RegionServer 中的所有 Region 都将移动到另一个 RegionServer 中。

  • move_tables_rsgroup:将表从一个 RegionServer Group 移动另一个 RegionServer Group。

  • move_namespaces_rsgroup:将指定命名空间的表从一个 RegionServer Group 移动另一个 RegionServer Group。

  • move_servers_tables_rsgroup:将 RegionServers 和 Tables 从一个 RegionServer Group 移动另一个 RegionServer Group。

  • move_servers_namespaces_rsgroup:将指定命名空间的 RegionServers 和 Tables 从一个 RegionServer Group 移动另一个 RegionServer Group。

  • get_server_rsgroup:获取给定 RegionServer 所属的 RegionServer Group。

  • get_table_rsgroup:获取给定表所属的 RegionServer Group。

  • remove_servers_rsgroup:从 RegionServer Group 中删除已停用的 Region。 处于 Dead/recovering/live 状态的 Region 将无法操作。

文章最后发布于: 2019-09-11 16:57:22
展开阅读全文
0 个人打赏
私信求帮助

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览