一、下載與解壓apache
Zookeeper下載地址:http://www.apache.org/dyn/closer.cgi/zookeeper/vim
下載完成之後解壓到一個特定目錄bash
同步時間全部節點的時間,並關閉防火牆 $ ntpdate -u ntp.sjtu.edu.cn $ service iptables stop
二、Zooker配置服務器
Zookeeper集羣模式至少須要3臺主機進行搭建,準備三臺主機Serve一、Server二、Server3 spa
» 在Zookeeper的conf目錄下建立myid文件,server1機器的內容爲:1,server2機器的內容爲:2,server3機器的內容爲:3
» 在conf目錄下建立一個配置文件zoo.cfg(標紅的最主要):scala
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
配置完成之後把配置文件分發到其餘的主機上;code
參數解釋: server
• tickTime:發送心跳的間隔時間,單位:毫秒
• dataDir:zookeeper保存數據的目錄。
• clientPort:客戶端鏈接 Zookeeper 服務器的端口,Zookeeper 會監聽這個端口,接受客戶端的訪問請求。
• initLimit: 這個配置項是用來配置 Zookeeper 接受客戶端(這裏所說的客戶端不是用戶鏈接 Zookeeper 服務器的客戶端,blog
而是 Zookeeper 服務器集羣中鏈接到 Leader 的Follower 服務器)初始化鏈接時最長能忍受多少個心跳時間間隔數。ip
當已經超過 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 實例通訊端口號不能同樣,因此要給它們分配不一樣的端口號。
三、配置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 表示啓動成功