應用場景
ZooKeeper是一個分布式的,開放源碼的分布式應用程式協調服務,是Google的Chubby一個開源的實作,是Hadoop和Hbase的重要元件。zookeeper有配置維護、域名服務、分布式同步、組服務等這些功能,它可以通過投票選舉機制選舉出leader,并且在hbase中,zookeeper尤為重要,zookeeper存儲了hbase的中繼資料,是以想要搭建hbase叢集之前,必須要搭建zookeeper。
操作步驟
1. zookeeper3.4.10下載下傳
zookeeper下載下傳位址,并上傳到主伺服器的/opt目錄下
雖然zookeeper在我們hadoop叢集的三個節點都需要安裝,但我們可以先在主伺服器上做好配置,然後分發到從伺服器
2. zookeeper解壓并修改目錄名
# cd /opt
# tar -xzvf zookeeper-3.4.10.tar.gz
# mv zookeeper-3.4.10 zookeeper3.4.10
3. 建立data和dataLog目錄
# mkdir /opt/zookeeper3.4.10/data # 建立data目錄
# mkdir /opt/zookeeper3.4.10/dataLog # 建立dataLog目錄
4. 建立myid檔案
# cd /opt/zookeeper3.4.10/data
# vim myid # 輸入數字1,然後儲存,第二個節點輸入2,第三個節點輸入3
# chmod 777 -R /opt/zookeeper3.4.10 # 對zookeeper的目錄進行授權
5. 修改配置檔案zoo.cfg
# cd /opt/zookeeper3.4.10/conf
# cp zoo_sample.cfg zoo.cfg
# vim zoo.cfg #在檔案末尾添加如下内容
dataDir=/opt/zookeeper3.4.10/data
dataLogDir=/opt/zookeeper3.4.10/dataLog
server.1=hadoop0:2888:3888
server.2=hadoop1:2888:3888
server.3=hadoop2:2888:3888
# 注hadoop0,hadoop1,hadoop2為三個節點的主機名!
6. 把在主節點上修改的zookeeper分發到hadoop1和hadoop2
# cd /opt/
# scp -r zookeeper3.4.10 root@hadoop1:/opt/
# scp -r zookeeper3.4.10 root@hadoop2:/opt/
分發後别忘了修改data目錄下的myid檔案中的内容,也給從節點的zookeeper目錄賦權
7. 啟動和測試叢集
分别在三台伺服器上運作如下指令
# zkServer.sh start
8. 驗證效果
分别在三台伺服器上運作如下指令
# zkServer.sh status
檢視zookeeper叢集中的zookeeper節點的狀态,會發現其中一個是leader,其餘是follower。這就是zookeeper的投票選舉機制,是以一般zookeeper為單數個節點的叢集,這樣投票容易一些;當然如果雙數節點也可以,隻是投票難度大了一些,比如6個節點的zookeeper,那麼必須一個節點票數為4票及以上,才行,而不像單數個節點!