前提: 搭建好HBase集群
一,修改centoshadoop1节点上的hbase-site.xml配置文件
添加如下配置:
<!-- 开启hbase ha高可用如果要设置多个 Hmaster,那么我们只需要提供端口 60000,因为选择真正的 master 的事情会有 zookeeper 去处理-->
<property>
<name>hbase.master</name>
<value>60000</value>
</property>
<property>
<!-- 允许节点时间偏差值 -->
<name>hbase.master.maxclockskew</name>
<value>180000</value>
</property>
二,分发hbase-site.xm l到其他节点
scp -r hbase-site.xml hadoop@centoshadoop2:/home/hadoop/hbase/hbase-1.4.11/conf/
scp -r hbase-site.xml hadoop@centoshadoop3:/home/hadoop/hbase/hbase-1.4.11/conf/
scp -r hbase-site.xml hadoop@centoshadoop4:/home/hadoop/hbase/hbase-1.4.11/conf/
三,重启集群
cd /home/hadoop/hbase/hbase-1.4.11
bin/stop-hbase.sh
bin/start-hbase.sh
在节点二上启动hbase的master节点
在另一台centoshadoop2 的主机上执行以下命令
bin/hbase-daemon.sh start master
jps
[hadoop@centoshadoop2 hbase-1.4.11]$ jps
3347 NameNode
14020 Jps
3431 DataNode
13655 HMaster ---master进程启动
3064 DFSZKFailoverController
3544 JournalNode
13471 HRegionServer ---HRegionServer 进程
进入zookeeper客户端命令行工具
zkCli.sh
ls -/
hbase ---HBase节点元数据存放目录
[zk: localhost:2181(CONNECTED) 2] ls /hbase/backup-masters
[centoshadoop2,16000,1584931204576] 这里存放的是备份节点的信息
四,模拟centoshadoop1失效后,HMaster的故障切换
[hadoop@centoshadoop1 hbase-1.4.11]$ bin/hbase-daemon.sh stop master
running master, logging
to /home/hadoop/hbase/hbase-1.4.11/bin/../logs/hbase-hadoop-master-centoshadoop1.out
stopping master.
http://ip:16010/ 访问centoshadoop2查看如下:
bin/hbase-daemon.sh start master 再次启动centoshadoop1节点上的master进程
http://ip:16010/ 访问centoshadoop1查看如下
已经看到已经由centoshadoop2节点接管了HMaster