配置Zookeeper元件的步驟和講解-- 叢集模式
自動容災(自動故障轉移):需要在HDFS部署環境中配置兩個元件:
1.Zookeeper叢集
2.ZKFC:zookeeper FailoverController process :
zookeeper是客戶端
zookeeper叢集模式
2.修改~/soft/zookeeper/zoo.cfg檔案: (現在master主機上)
$>gedit zoo.cfg
修改:
a.[修改zoo.cfg檔案]: tickTime=2000 initLimit=10 syncLimit=5 dataDir=/home/hyxy/tmp/zookeeper clientPort=2181 //客戶端提交的埠號 server.1=master:2888:3888 //服務端提交的埠號 server.2=slave1:2888:3888 server.3=slave2:2888:3888 三個節點都要改! b.在/home/hyxy/tmp/zookeeper目錄下,建立myid檔案 $>echo "1" >> myid //在master節點 $>echo "2" >> myid //在slave1節點 $>echo "3" >> myid //在slave2節點
3.分發到其他節點上:slave1,slave2
$>scp -r zookeeper [email protected]: ~/soft/
$>scp -r zookeeper [email protected]: ~/soft /
4. 將master配置的 ~/.bash_profile 環境變數 ,分發至slave1,slave2
$>scp ~/.bash_profile
$>scp ~/.bash_profile [email protected]:~/.bash_profile
5.第四步之後,需要 分別在slave1,slave2分別 使分發的環境變數生效,
$> source .bash_profile
測試:$> cd $ZOOKEEPER_HOME
6.修改配置檔案:hdfs-site.xml 和 core-site.xml
【修改hdfs-site.xml】
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value> //是否自動容災
</property>
【修改core-site.xml】
<property>
<name>ha.zookeeper.quorum</name>
<value>master:2181,slave1:2181,slave2:2181</value>
</property>
7.將配置檔案分發至salve1,slave2節點上
slave1: $>scp hdfs-site.xml [email protected]:~/soft/hadoop/etc/hadoop_cluster_ha/
$>scp core-site.xml [email protected]:~/soft /hadoop/etc/hadoop_cluster_ha/
slave2: $>scp hdfs-site.xml [email protected]:~/soft/hadoop/etc/hadoop_cluster_ha/
$>scp core-site.xml [email protected]:~/soft /hadoop/etc/hadoop_cluster_ha/
注意:要保證三臺機器的hadoop_cluster_ha、環境變數.bash_profile、 ~/soft/zookeeper/conf/zoo.cfg的檔案等要一樣!!!!
8.格式化zk
$>hdfs zkfc -formatZK
說明:將在Zookeeper的樹狀節點上註冊一個Znode
9..確保zookeeper叢集是開啟狀態:zkServer.sh start
$>jps
5458 QuorumPeerMain
10.start-dfs.sh
11.測試:
將active的節點kill掉,檢視另一個節點狀態(master:50070,slave:50070);會發現自動從standby 變成active活動狀態,
說明自動容災(故障自動轉移)zookeeper配置成功。