黑猴子的家:HBase 退役节点(decommissioning)

顾名思义,就是从当前HBase集群中删除某个RegionServer

1、方式一 (不建议) 0.90.2版本之前,只有这一种方式

1)进入HBase客户端命令行

[victor@node1 hbase]$ bin/hbase shell

2)停止负载平衡器(在HMaster节点上)

hbase> balance_switch false

3)在退役节点上停止RegionServer

[victor@node1 hbase]$ hbase-daemon.sh stop regionserver

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

5)Zookeeper上的该RegionServer节点消失

6)Master节点检测到该RegionServer下线

7)RegionServer的region服务得到重新分配

8)启动负载平衡器(在HMaster节点上)

[victor@node1 hbase]$ bin/hbase shell
hbase> balance_switch true

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

2、方式二(建议)

1)RegionServer先卸载所管理的region

[victor@node1 hbase]$ bin/graceful_stop.sh node1

尖叫提示:该命令会自动关闭Load Balancer(banlance_switch),然后转移该regionserver维护的region到其他节点,将该节点关闭。除此之外,你还可以查看remove的过程,已经assigned了多少个Region,还剩多少个Region,每个Region 的Assigned耗时,最终都需要我们手动打开load balancer,我们需要手动开启均衡器[ hbase shell banlance_switch true ]

2)在退役节点上停止RegionServer ,不着急,等一等

[victor@node1 hbase]$ hbase-daemon.sh stop regionserver

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

4)Zookeeper上的该RegionServer节点消失

5)Master节点检测到该RegionServer下线

6)RegionServer的region服务得到重新分配,已经提前读出来,时间短效率快

7)启动负载平衡器(在HMaster节点上)

[victor@node1 hbase]$ bin/hbase shell
hbase> balance_switch true

尖叫提示:强烈建议使用“graceful_stop”来移除节点,当Hadoop和HBase都需要退役节点时,先退役HBase。

你可能感兴趣的:(黑猴子的家:HBase 退役节点(decommissioning))