下載:zookeeper:http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz 解壓zookeeper-3.4.6.tar.gz 一、單機配置 把zookeeper-3.4.6/conf/zoo_sample.cfg修改為zoo.cfg zoo.cfg內容: tickTime=2000 //Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔 initLimit=5 //zookeeper集群中的包含多台server, 其中一台為leader, 集群中其余的server為follower. initLimit參數配置初始化連接時, follower和leader之間的最長心跳時間. 此時該參數設置為5, 說明時間限制為5倍tickTime, 即5*2000=10000ms=10s. syncLimit=2 //該參數配置leader和follower之間發送消息, 請求和應答的最大時間長度. 此時該參數設置為2, 說明時間限制為2倍tickTime, 即4000ms. dataDir=D:\\tools\\zookeeper-3.4.6\\data //Zookeeper 保存數據的目錄 clientPort=2181 //客戶端連接 Zookeeper 服務器的端口,Zookeeper 會監聽這個端口,接受客戶端的訪問請求 啟動Zookeeper 執行bin/zkServer.cmd 二、偽集群配置 在zookeeper-3.4.6/conf/目錄下創建3個配置文件:zoo1.cfg、zoo2.cfg、zoo3.cfg
zoo1.cfg內容: tickTime=2000
initLimit=5 syncLimit=2
dataDir=D:\\tools\\zookeeper-3.4.6\\data\\1
clientPort=2181
server.1=localhost:2887:3887 server.2=localhost:2888:3888 server.3=localhost:2889:3889 zoo2.cfg內容: tickTime=2000
initLimit=5 syncLimit=2
dataDir=D:\\tools\\zookeeper-3.4.6\\data\\2 clientPort=2182
server.1=localhost:2887:3887 server.2=localhost:2888:3888 server.3=localhost:2889:3889 zoo3.cfg內容: tickTime=2000
initLimit=5 syncLimit=2
dataDir=D:\\tools\\zookeeper-3.4.6\\data\\3
clientPort=2183
server.1=localhost:2887:3887 server.2=localhost:2888:3888 server.3=localhost:2889:3889 注:server.X=A:B:C 其中X是一個數字, 表示這是第幾號server. A是該server所在的IP地址. B配置該server和集群中的leader交換消息所使用的端口. C配置選舉leader時所使用的端口. 由於配置的是偽集群模式, 所以各個server的B, C參數必須不同。 分別在zookeeper-3.4.6\data\1、zookeeper-3.4.6\data\2、zookeeper-3.4.6\data\3目錄下創建一個myid的文件, myid文件的內容分別為1、2、3
在zookeeper-3.4.6/bin/目錄下創建3個配置文件:zkEvn1.cmd、zkEvn2.cmd、zkEvn3.cmd
分別修改set ZOOCFG=%ZOOCFGDIR%\zoo.cfg 為:set ZOOCFG=%ZOOCFGDIR%\zoo1.cfg、set ZOOCFG=%ZOOCFGDIR%\zoo2.cfg、set ZOOCFG=%ZOOCFGDIR%\zoo3.cfg 在zookeeper-3.4.6/bin/目錄下創建3個配置文件:zkServer1.cmd、zkServer2.cmd、zkServer3.cmd 分別修改call "%~dp0zkEnv.cmd" 為:call "%~dp0zkEnv1.cmd"、call "%~dp0zkEnv2.cmd"、call "%~dp0zkEnv3.cmd"
分別執行zkServer1.cmd、zkServer2.cmd、zkServer3.cmd就啟動了zookeeper服務器。
