1.Zookeeper的下載與解壓
通過后面的鏈接下載Zookeeper: Zookeeper下載
在此我們下載zookeeper-3.4.5
下載后解壓至安裝目錄下,本文我們解壓到目錄:/opt/zookeeper-3.4.8
$:tar -xzvf zookeeper-3.4.8.tar.gz -C /opt/
如下圖所示:
2.zookeeper的環境變量的配置:
為了今后操作方便,我們需要對Zookeeper的環境變量進行配置,方法如下:
在/etc/profile文件中加入如下的內容:
#set zookeeper environment export ZOOKEEPER_HOME=/opt/zookeeper-3.4.8 export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf
然后 source /etc/profile 刷新一下配置
-----------------------------------------------------------------------------------------------------------------------------------------
3.集群部署:
在Zookeeper集群環境下只要一半以上的機器正常啟動了,那么Zookeeper服務將是可用的。因此,集群上部署Zookeeper最好使用奇數台機器,這樣如果有5台機器,只要3台正常工作則服務將正常使用。
下面我們將對Zookeeper的配置文件的參數進行設置:
進入zookeeper-3.4.8/conf:
$:cp zoo_sample.cfg zoo.cfg $:vim zoo.cfg
可參考下圖配置:
注意上圖的配置中master,slave1,slave2分別為主機名。
需要配置相應的hosts
192.168.1.213 master 192.168.1.216 slave1 192.168.1.217 slave2
在上面的配置文件中"server.id=host:port:port"中的第一個port是從機器(follower)連接到主機器(leader)的端口號,第二個port是進行leadership選舉的端口號。
接下來在dataDir所指定的目錄下創建一個文件名為zookeeper_server.pid的文件,文件中的內容只有一行,為本主機對應的id值,也就是上圖中server.id中的id。例如:在服務器1中的zookeeper_server.pid的內容應該寫入1。
4.遠程復制分發安裝文件
接下來將上面的安裝文件拷貝到集群中的其他機器上對應的目錄下:
root@master:~/zookeeper-3.4.8$ scp -r zookeeper-3.4.8/ slave1:/opt/zookeeper-3.4.8 root@master:~/zookeeper-3.4.8$ scp -r zookeeper-3.4.8/ slave2:/opt/zookeeper-3.4.8
拷貝完成后修改對應的機器上的zookeeper_server.pid。例如修改slave1中的zookeeper_server.pid如下:
root@slave1:~/opt/zookeeper-3.4.8$ echo "2" > data/myid
5.啟動ZooKeeper集群
在ZooKeeper集群的每個結點上,執行啟動ZooKeeper服務的腳本,如下所示:
haduser@master:~/opt/zookeeper-3.4.8$ bin/zkServer.sh start haduser@slave1:~/opt/zookeeper-3.4.8$ bin/zkServer.sh start haduser@slave2:~/opt/zookeeper-3.4.8$ bin/zkServer.sh start
如下圖所示:
其中,QuorumPeerMain是zookeeper進程,啟動正常。
如上依次啟動了所有機器上的Zookeeper之后可以通過ZooKeeper的腳本來查看啟動狀態
bin/zkServer.sh status
包括集群中各個結點的角色(或是Leader,或是Follower),如下所示,是在ZooKeeper集群中的每個結點上查詢的結果:
通過上面狀態查詢結果可見,slave1是集群的Leader,其余的兩個結點是Follower。
另外,可以通過客戶端腳本,連接到ZooKeeper集群上。對於客戶端來說,ZooKeeper是一個整體(ensemble),連接到ZooKeeper集群實際上感覺在獨享整個集群的服務,所以,你可以在任何一個結點上建立到服務集群的連接,例如:
6.停止zookeeper進程:zookeeper-3.4.3/bin/zkServer.sh stop
-----------------------------------------------------------------------------------------------------------------------------------------