zooKeeper在windows上的搭建
1.将ZooKeeper下载并解压,并配置环境变量
ZOOKEEPER_HOME=D:\Install\zookeeper\zookeeper-3.4.13
在path环境变量里配置% ZOOKEEPER_HOME%\bin和
%ZOOKEEPER_HOME%\conf
2.将conf目录下的zoo_sample.cfg文件复制粘贴三份,分别改名为zoo1.cfg,zoo2.cfg,zoo3.cfg
3.zoo1.cfg文件内容:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:\Install\zookeeper\data\data1
dataLogDir=D:\Install\zookeeper\log\log1
clientPort=2181
server.1=127.0.0.1:2887:3887
server.2=127.0.0.1:2888:3888
server.3=127.0.0.1:2889:3889
zoo2.cfg与zoo1.cfg内容不一样的地方为:
dataDir=D:\Install\zookeeper\data\data2
dataLogDir=D:\Install\zookeeper\log\log2
clientPort=2182
同理zoo3.cfg为:
dataDir=D:\Install\zookeeper\data\data2
dataLogDir=D:\Install\zookeeper\log\log2
clientPort=2182
4.编辑zkEnv.cmd中的内容:修改为set ZOOCFG=%ZOOCFGDIR%\zoo1.cfg,并命名为:zkEnv1.cmd
5.将zkEnv1.cmd复制两份,命名为zkEnv2.cmd和zkEnv3.cmd,并分别修改set ZOOCFG=%ZOOCFGDIR%\zoo2.cfg和
set ZOOCFG=%ZOOCFGDIR%\zoo3.cfg
6.编辑zkServer.cmd中的内容:call “%~dp0zkEnv.cmd”修改为call “%~dp0zkEnv1.cmd”,并命名为zkServer1.cmd,同理复制两份,命名为zkServer2.cmd,zkServer3.cmd,分别将内容call “%~dp0zkEnv.cmd”修改为call “%~dp0zkEnv2.cmd”, call “%~dp0zkEnv3.cmd”
7.在每个dataDir目录下创建myid文件,文件名为myid,不需要后缀名,直接保存,内容分别为1,2,3。每个myid文件的内容实为server.n中的n,例如server.1=127.0.0.1:2887:3887,那么第一个myid文件中的内容就为1
8.启动3个cmd窗口(最少启动2个,由于仲裁机制),分别输入zkServer1.cmd,zkServer2.cmd,zkSercer3.cmd
9.在启动一个的时候会报错,拒绝连接。
10.启动两个成功(三个是是一样的)
易出错的地方
1.作者在网上看过很多方案,一直报错上很多搭建方案是不修改zkEnv.cmd,在第4步之前是一样,之后在zkServer.cmd中,在这行内容下
set ZOOMAIN=org.apache.zookeeper.server.quorum.QuorumPeerMain添加
set ZOOCFG=..\conf\zoo1.cfg,并且命名为zkServer1.cmd,复制两份,做类似的修改,set ZOOCFG=..\conf\zoo2.cfg,set ZOOCFG=..\conf\zoo3.cfg,然后启动。作者会报这个错:..\conf\zoo1.cfg file is missing
2.此外很多人还会报myid file is missing,大多数是因为路径不正确,读者可以参考其他博客。