节点的管理
一、服役(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) 下线的RegionServer的region服务得到重新分配
这种方法很大的一个缺点是该节点上的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是没有单点故障的。
浙公网安备 33010602011771号