1、下載與解壓
Zookeeper下載地址:http://www.apache.org/dyn/closer.cgi/zookeeper/
下載完成以后解壓到一個特定目錄
同步時間所有節點的時間,並關閉防火牆 $ ntpdate -u ntp.sjtu.edu.cn $ service iptables stop
2、Zooker配置
Zookeeper集群模式至少需要3台主機進行搭建,准備三台主機Serve1、Server2、Server3
» 在Zookeeper的conf目錄下創建myid文件,server1機器的內容為:1,server2機器的內容為:2,server3機器的內容為:3
» 在conf目錄下創建一個配置文件zoo.cfg(標紅的最主要):
tickTime=2000 dataDir=/Users/zdandljb/zookeeper/data dataLogDir=/Users/zdandljb/zookeeper/dataLog clientPort=2181 initLimit=5 syncLimit=2 server.1=server1:2888:3888 server.2=server2:2888:3888 server.3=server3:2888:3888
配置完成以后把配置文件分發到其他的主機上;
參數解釋:
• tickTime:發送心跳的間隔時間,單位:毫秒
• dataDir:zookeeper保存數據的目錄。
• clientPort:客戶端連接 Zookeeper 服務器的端口,Zookeeper 會監聽這個端口,接受客戶端的訪問請求。
• initLimit: 這個配置項是用來配置 Zookeeper 接受客戶端(這里所說的客戶端不是用戶連接 Zookeeper 服務器的客戶端,
而是 Zookeeper 服務器集群中連接到 Leader 的Follower 服務器)初始化連接時最長能忍受多少個心跳時間間隔數。
當已經超過 5 個心跳的時間(也就是 tickTime)長度后 Zookeeper 服務器還沒有收到客戶端的返回信息,那么表明這個客戶端連接失敗。
總的時間長度就是 5*2000=10 秒
• syncLimit:這個配置項標識 Leader 與 Follower 之間發送消息,請求和應答時間長度,最長不能超過多少個 tickTime 的時間長度,
總的時間長度就是 2*2000=4 秒
• server.A=B:C:D:其 中
A 是一個數字,表示這個是第幾號服務器;
B 是這個服務器的 ip地址;
C 表示的是這個服務器與集群中的 Leader 服務器交換信息的端口;
D 表示的是萬一集群中的 Leader 服務器掛了,需要一個端口來重新進行選舉,選出一個新的 Leader,
而這個端口就是用來執行選舉時服務器相互通信的端口。如果是偽集群的配置方式,由於 B 都是一樣,
所以不同的 Zookeeper 實例通信端口號不能一樣,所以要給它們分配不同的端口號。
3、配置zookeeper的環境變量
$ vim /root/.bash_profile #寫入 PATH=$PATH:/usr/local/zookeeper-3.4.6/bin
4.啟動zookeeper(所有節點都要啟動)
$ cd /usr/local/zookeeper $ bin/zkServer.sh start # 顯示:Starting zookeeper ... STARTED 表示啟動成功
