HBase Master高可用(HA)


HMaster沒有單點問題,HBase中可以啟動多個HMaster,通過Zookeeper的Master Election機制保證總有一個Master運行。

所以這里要配置HBase高可用的話,只需要啟動兩個HMaster,讓Zookeeper自己去選擇一個Master Acitve。

HBase配置:

在$HBASE_HOME/conf目錄下

1.hbase-site.xml 

export HBASE_OPTS="$HBASE_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"
export JAVA_HOME=/usr/java/jdk1.7.0_60 
export HBASE_MANAGES_ZK=false
export HADOOP_HOME=/data/hadoop-2.6.0
export HBASE_LOG_DIR=/data/hadoop/hbase/logs

一個分布式運行的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.rootdir</name>
<value>hdfs://appcluster/hbase</value>
<description>The directory shared by RegionServers.</description>
</property>

<property>
<name>hbase.master</name>
<value>60000</value><!--這里注意了,只需端口即可,不必再寫主機名稱了!-->
</property>

<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop001,hadoop002,hadoop003</value>
</property>

<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>

<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/data/hadoop/zookeeper</value>
</property>

<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>

<property>
<name>hbase.tmp.dir</name>
<value>/data/hadoop/hbase/tmp</value>
</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

9832 HRegionServer
8923 QuorumPeerMain
9379 NodeManager
10495 Jps
9197 DataNode
9622 ResourceManager
9006 JournalNode
10436 NameNode
9552 DFSZKFailoverController

在某regionserver上啟動Hmaster

hbase-daemon.sh start master

jps:

9832 HRegionServer
8923 QuorumPeerMain
9379 NodeManager
10495 Jps
9197 DataNode
9622 ResourceManager
9006 JournalNode
10005 HMaster 10436 NameNode
9552 DFSZKFailoverController

這個時候就可以看到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了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM