Hbase的Hmaster配置HA相比Hadoop的NameNode和ResourceManager的HA来说,比较简单,几乎不用配置什么:
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://ns1/hbase</value><!--这里必须跟core-site.xml中的配置一样--> </property> <!-- 开启分布式模式 --> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> </property> <!-- 这里是对的,只配置端口,为了配置多个HMaster --> <property> <name>hbase.master</name> <value>60000</value> </property> <property> <name>hbase.tmp.dir</name> <value>/ROOT/server/hbase/hbasetmp</value> </property> <!-- Hbase的外置zk集群时,使用下面的zk端口 --> <property> <name>hbase.zookeeper.quorum</name> <value>h1,h2,h3</value> </property> <property> <name>hbase.regionserver.lease.period</name> <value>120000</value> </property> </configuration>
完毕后,执行start-hbase.sh 启动Hbase集群,然后在第二台Hmaster上
执行hbase-daemon.sh start master,如果启动成功,则可以在16010界面上
看到备用的master,一切正常之后,可以kill掉主master,测试自动容错.
使用jps命令查看两台master的进程,分别如下:
[webmaster@Hadoop-0-187 ~]$ jps 20449 JobHistoryServer 27295 Jps 14204 DataNode 20209 NameNode 17328 ResourceManager 3310 QuorumPeerMain 19329 HMaster 13827 DFSZKFailoverController 15474 NodeManager 14409 JournalNode [webmaster@Hadoop-0-187 ~]$
[webmaster@Hadoop-0-186 ~]$ jps 30300 JournalNode 30789 NodeManager 582 HMaster 30203 DataNode 3683 Jps 30127 NameNode 31256 ResourceManager 2396 QuorumPeerMain 29987 DFSZKFailoverController 32745 HRegionServer [webmaster@Hadoop-0-186 ~]$
代表配置成功!