1、下載
官網鏈接:http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.5.2-alpha/zookeeper-3.5.2-alpha.tar.gz
2、解壓
tar zxvf zookeeper-3.5.2-alpha.tar.gz /usr/local/zookeeper
3、編輯配置文件zoo.cfg
cd /usr/local/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
gedit zoo.cfg
1 dataDir=/usr/local/zookeeper/data #本來有指向的,所以就修改地址 2 dataLogDir=/usr/local/zookeeper/logs 3 server.134=master:2888:3888 4 server.135=slave1:2888:3888 5 server.136=slave2:2888:3888 6 server.137=slave3:2888:3888
然后在上面dataDir和dataLogDir指向的地址創建相應的文件夾來存放數據與文件
- initLimit: zookeeper集群中的包含多台server, 其中一台為leader, 集群中其余的server為follower. initLimit參數配置初始化連接時, follower和leader之間的最長心跳時間. 此時該參數設置為5, 說明時間限制為5倍tickTime, 即5*2000=10000ms=10s.
- syncLimit: 該參數配置leader和follower之間發送消息, 請求和應答的最大時間長度. 此時該參數設置為2, 說明時間限制為2倍tickTime, 即4000ms.
- server.X=A:B:C 其中X是一個數字, 表示這是第幾號server. A是該server所在的IP地址. B配置該server和集群中的leader交換消息所使用的端口. C配置選舉leader時所使用的端口. 由於配置的是偽集群模式, 所以各個server的B, C參數必須不同.
- tickTime: zookeeper中使用的基本時間單位, 毫秒值.
- dataDir: 數據目錄. 可以是任意目錄.
- dataLogDir: log目錄, 同樣可以是任意目錄. 如果沒有設置該參數, 將使用和dataDir相同的設置.
- clientPort: 監聽client連接的端口號.
4、創建myid文件
dataDir中新建myid文件, 寫入一個數字, 該數字表示這是第幾號server. 該數字必須和zoo.cfg文件中的server.X中的X一一對應
例:master的是134,如圖
6、拷貝配置好的zookeeper文件到slave1,slave2,slave3節點對應的文件夾下,要一樣的目錄。在zookeeper集群里面,myid是唯一的,所以要修改各個節點的myid。然后修改data下面的myid,修改成對應的id,slave1為135,slave2為136,slave3為137。
7、啟動zookeeper,zookeeper需要各個服務器單獨啟動
分別在master,slave1,slave2,slave3啟動
cd /usr/local/zookeeper
bin/zkServer.sh start
8、通過jps查看是否啟動成功
各個節點查看是否有進程
QuorumPeerMain
9、任意選擇一台服務器,連接客服端,查看能否正常進入zookeeper的shell界面,我這里就選擇master
cd /usr/local/zookeeper
bin/zkCli.sh -server master:2181