为了增加hbase集群的可用性,可以为hbase增加多个backup master。当master挂掉后,backup master可以自动接管整个hbase的集群。配置方式很简单,只需在$HBASE_HOME/conf下增加backup-masters文件,文件里面增加backup master的机器列表,每台机器一条记录。环境如图所示:
Configuring Hbase High Availability_第1张图片
1、hbase-env.sh
编辑加入以下内容:

export JAVA_HOME=/usr/java/jdk1.8.0_152
export HBASE_MANAGES_ZK=false

2、hbase-site.xml
编辑加入图中内容:
Configuring Hbase High Availability_第2张图片
3、创建backup-masters

[hadoop@hdp01 conf]$ cat backup-masters 
hdp03

4、创建regionservers
RegionServer是HBase集群运行在每个工作节点上的服务。它是整个HBase系统的关键所在,一方面它维护了Region的状态,提供了对于Region的管理和服务;另一方面,它与Master交互,上传Region的负载信息上传,参与Master的分布式协调管理。

[hadoop@hdp01 conf]$ vi regionservers
hdp02
hdp03
hdp04

5、复制Hbase到其他节点

[hadoop@hdp01 conf]$ for i in {2..4};do scp -r /u01/hbase hdp0$i:/u01/hbase;done

6、启动hbase

[hadoop@hdp01 conf]$ $HBASE_HOME/bin/start-hbase
[hadoop@hdp01 ~]$ jps
5633 RunJar
5075 JobHistoryServer
5252 HMaster
3686 QuorumPeerMain
4566 SecondaryNameNode
10727 Jps
4747 ResourceManager
4350 NameNode
5535 RunJar
[hadoop@hdp03 ~]$ jps
4432 HRegionServer
9442 Jps
3575 QuorumPeerMain
4104 DataNode
4522 HMaster
4238 NodeManager

可以访问http://hdp01:16010,通过图形界面查看:
Configuring Hbase High Availability_第3张图片
7、验证
关闭hdp01的hbase:

[hadoop@hdp01 bin]$ ./hbase-daemon.sh stop master
stopping master.
[hadoop@hdp01 bin]$ jps
5633 RunJar
5075 JobHistoryServer
3686 QuorumPeerMain
4566 SecondaryNameNode
4747 ResourceManager
11339 Jps
4350 NameNode
5535 RunJar

然后访问http://hdp03:16010进行查看:
Configuring Hbase High Availability_第4张图片
最后,再次启动hdp01的hbase就会变为backup了。

[hadoop@hdp01 bin]$ ./hbase-daemon.sh start master --backup

Configuring Hbase High Availability_第5张图片
参考文献:
1、HBase原理-RegionServer宕机数据恢复
2、HBase深入分析之RegionServer
3、HBase RegionServer详解