数据清理
1. 停止HBase
export HBASE_HOME=/home/bigdata/modules/hbase-1.2.5
${HBASE_HOME}/bin/stop-hbase.sh
2. 清理HDFS目录
export HADOOP_HOME=/home/bigdata/modules/hadoop-2.7.2
cd ${HADOOP_HOME}
bin/hdfs dfs -rm -r /hbase
3. 清理ZooKeeper目录
export ZOOKEEPER_HOME=/home/bigdata/modules/zookeeper-3.4.10
cd ${ZOOKEEPER_HOME}/bin
./zkCli.sh -server localhost:2181
zk >> rmr /hbase
4. 启动HBase
export HBASE_HOME=/home/bigdata/modules/hbase-1.2.5
${HBASE_HOME}/bin/start-hbase.sh
节点管理
服役(commissioning)
当启动RegionServer时,RegionServe会向HMaster注册并开始接收本地数据,开始的时候,新加入的节点不会有任何数据,平衡器开启的情况下,将会有新的region移动到开启的RegionServer上。如果启动和停止进程是使用ssh和HBase脚本,那么会将新添加的节点的主机名加入到conf/regionservers文件中。
# 1.服役节点启动ReginServer
./bin/hbase-daemon.sh start regionserver
# 2.开启负载平衡器
hbase(main)> balance_switch true
退役(decommissioning)
1. HBase-0.90.2
注意:在0.90.2之前,退役节点只能通过在要卸载的节点上执行。
停止负载平衡器。
hbase(main)> balance_switch false
在退役节点上停止RegionServer。
./bin/hbase-daemon.sh stop regionserver
RegionServer一旦停止,会关闭维护的所有region。
- Zookeeper上的该RegionServer节点消失。
- Master节点检测到该RegionServer下线,开启平衡器(整个集群的均衡器)。
- 下线的RegionServer的region服务得到重新分配。
这种方法很大的一个缺点是该节点上的Region会离线很长时间。因为假如该RegionServer上有大量Region的话,因为Region的关闭是顺序执行的,第一个关闭的Region得等到和最后一个Region关闭并Assigned后一起上线。这是一个相当漫长的时间。每个Region Assigned需要4s,也就是说光Assigned就至少需要2个小时。该关闭方法比较传统,需要花费一定的时间,而且会造成部分region短暂的不可用。
2. HBase-0.90.2+
自0.90.2之后,HBase添加了一个新的方法,即“graceful_stop”,只需要在HBase Master节点执行。Region从HRegionServer上面进行卸载(即:他们不对外提供服务了)之后HMaster会启动将已经卸载的Region分配到其他的HRegionServer上面。这样就有效的保障了Hbase的可靠性。
优雅停止ReginServer。
bin/graceful_stop.sh <RegionServer-hostname>
该命令会自动关闭Load Balancer,然后Assigned转移Region,之后会将该节点关闭。除此之外,你还可以查看remove的过程,已经Assigned了多少个Region,还剩多少个Region,每个Region 的Assigned耗时。
开启负载平衡器。
hbase(main)> balance_switch true
之后的步骤参考上述的2~6。