Hbase-节点的管理

Posted on 2020-04-30 10:38  MissRong  阅读(798)  评论(0)    收藏  举报

节点的管理

一、服役(commissioning)

当启动regionserver时,regionserver会向HMaster注册并开始接收本地数据,开始的时候,新加入的节点不会有任何数据,平衡器开启的情况下,将会有新的region移动到开启的RegionServer上。如果启动和停止进程是使用ssh和HBase脚本,那么会将新添加的节点的主机名加入到conf/regionservers文件中。

在hbase目录下-启动所有的从节点:

$ ./bin/hbase-daemon.sh start regionserver

hbase(main):001:0>balance_switch true

二、退役(decommissioning)

顾名思义,就是从当前HBase集群中删除某个RegionServer,这个过程分为如下几个过程:

0.90.2之前,我们只能通过在要卸载的节点上执行

1) 停止负载平衡器

hbase> balance_switch false

2) 在退役节点上停止RegionServer

[root@bigdata11 hbase-1.3.1] hbase-daemon.sh stop regionserver

3) RegionServer一旦停止,会关闭维护的所有region

4) Zookeeper上的该RegionServer节点消失

5) Master节点检测到该RegionServer下线,开启平衡器-整个集群的均衡器

hbase> balance_switch true

6) 下线的RegionServerregion服务得到重新分配

这种方法很大的一个缺点是该节点上的Region会离线很长时间。因为假如该RegionServer上有大量Region的话,因为Region的关闭是顺序执行的,第一个关闭的Region得等到和最后一个Region关闭并Assigned后一起上线。这是一个相当漫长的时间。每个Region Assigned需要4s,也就是说光Assigned就至少需要2个小时。该关闭方法比较传统,需要花费一定的时间,而且会造成部分region短暂的不可用。

***************************************************************************************

另一种方案:

1)  新方法

0.90.2之后,HBase添加了一个新的方法,即“graceful_stop”,只需要在HBase Master节点执行

 

$ bin/graceful_stop.sh <RegionServer-hostname>

[root@bigdata111 ~]# graceful_stop.sh bigdata113

该命令会自动关闭Load Balancer,然后Assigned-转移 Region,之后会将该节点关闭。除此之外,你还可以查看remove的过程,已经assigned了多少个Region,还剩多少个Region,每个Region 的Assigned耗时。

 

 

 

 

 接下来在启动从节点bigdata113-服役:

[root@bigdata113 bin]# ./hbase-daemon.sh start regionserver

 

 

 2) 开启负载平衡器

hbase> balance_switch true

 

接着kill掉现任的Hbase的Master节点:

[root@bigdata111 conf]# kill -9 5322

 

 Hbase是没有单点故障的。

 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3