HBase Master高可用(HA)配置

时间:2023-02-03 12:12:30

HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master运行。

所以这里要配置HBase高可用的话,只需要启动两个HMaster,让Zookeeper自己去选择一个Master Acitve。

HBase配置:

在$HBASE_HOME/conf目录下

1.配置HBASE环境

HBase Master高可用(HA)配置

一个分布式运行的Hbase依赖一个zookeeper集群。所有的节点和客户端都必须能够访问zookeeper。默认的情况下Hbase会管理一个zookeep集群。这个集群会随着Hbase的启动而启动。当然,你也可以自己管理一个zookeeper集群,但需要配置Hbase。你需要修改HBASE_MANAGES_ZK 来切换。这个值默认是true的,作用是让Hbase启动的时候同时也启动zookeeper.

让Hbase使用一个现有的不被Hbase托管的Zookeep集群,需要设置 HBASE_MANAGES_ZK 属性为 false

2.hbase-site.xml

<configuration><property><name>hbase.rootdirname><value>hdfs://appcluster/hbasevalue><description>The directory shared by RegionServers.description>property><property><name>hbase.mastername><value>60000value>​property><property><name>hbase.zookeeper.quorumname><value>hadoop001,hadoop002,hadoop003value>property><property><name>hbase.zookeeper.property.clientPortname><value>2181value>property><property><name>hbase.zookeeper.property.dataDirname><value>/data/hadoop/zookeepervalue>property><property><name>hbase.cluster.distributedname><value>truevalue>property><property><name>hbase.tmp.dirname><value>/data/hadoop/hbase/tmpvalue>property>configuration>

3.regionservers

添加regionserver的hostname

HBase启动:

在hadoop001上输入启动命令

start-hbase.sh

终端执行jps指令查看进程:

master (因为之前启动了Hadoop HA,所以会看到很多进程)

23703 NameNode

23968 ResourceManager

24132 DFSZKFailoverController

23813 DataNode

24857 HRegionServer

24723 HMaster

23428 QuorumPeerMain

23522 JournalNode

25448 Jps

24070 NodeManager

regionserver

​终端执行jps指令查看进程:

9832 HRegionServer

8923 QuorumPeerMain

9379 NodeManager

9197 DataNode

9622 ResourceManager

9006 JournalNode

10436 NameNode

9552 DFSZKFailoverController

10495 Jps

在某regionserver上启动Hmaster

hbase-daemon.sh start master

终端执行jps指令查看进程:

9832 HRegionServer

8923 QuorumPeerMain

9379 NodeManager

9197 DataNode

9622 ResourceManager

9006 JournalNode

10005 HMaster

10436 NameNode

9552 DFSZKFailoverController

10495 Jps

这个时候就可以看到HMaster启动了。

如何区分哪个是Active哪个是standby呢,看log

hbase的log中可以看到

2015-08-07 14:00:14,765 INFO [hadoop002:60000.activeMasterManager] master.ActiveMasterManager: Another master is the active master, hadoop001,60000,1438927191790; waiting to become the next active master

这样就可以判断哪台是Active了