使用清华大学开源软件镜像站 :https://mirrors.cnnic.cn/apache/zookeeper/
解压 zookeeper-3.5.2-alpha.tar.gz 到zookeeper-3.5.2_cluster 目录 ,
并创建dataDir 目录,在dataDir 目录下创建zoo_1_data、zoo_1_log、zoo_2_data、zoo_2_log、zoo_3_data、zoo_3_log 目录。
如图所示:
# The number of milliseconds of each tick 心跳间隔 毫秒每次
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting anacknowledgement
syncLimit=5
# the directory where the snapshot isstored.
# 镜像数据位置
dataDir=D:\\developeSoft\\zookeeper\\zookeeper-3.5.2_cluster\\dataDir\\zoo_1_data
#日志位置
dataLogDir=D:\\developeSoft\\zookeeper\\zookeeper-3.5.2_cluster\\dataDir\\zoo_1_log
# ZK 服务器端的监听端口,对应分别:2181 2182 2183
# 目录下创建3份,zoo-1.cfg、zoo-2.cfg、zoo-3,cfg 记得改参数
clientPort=2181
# 伪集群
# 2887 是server 之间通讯的
# 3887 是当集群中的 Leader 服务器挂了,用来执行选举时服务器相互通信的端口
# 同时加入其他两个服务的地址和端口信息
server.1=127.0.0.1:2887:3887
server.2=127.0.0.1:2888:3888
server.3=127.0.0.1:2889:3889
# The number of milliseconds of each tick 心跳间隔 毫秒每次
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting anacknowledgement
syncLimit=5
# the directory where the snapshot isstored.
# 镜像数据位置
dataDir=D:\\developeSoft\\zookeeper\\zookeeper-3.5.2_cluster\\dataDir\\zoo_2_data
#日志位置
dataLogDir=D:\\developeSoft\\zookeeper\\zookeeper-3.5.2_cluster\\dataDir\\zoo_2_log
# ZK 服务器端的监听端口,对应分别:2181 2182 2183
# 目录下创建3份,zoo-1.cfg、zoo-2.cfg、zoo-3,cfg 记得改参数
clientPort=2182
# 伪集群
# 2887 是server 之间通讯的
# 3887 是当集群中的 Leader 服务器挂了,用来执行选举时服务器相互通信的端口
# 同时加入其他两个服务的地址和端口信息
server.1=127.0.0.1:2887:3887
server.2=127.0.0.1:2888:3888
server.3=127.0.0.1:2889:3889
# The number of milliseconds of each tick 心跳间隔 毫秒每次
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting anacknowledgement
syncLimit=5
# the directory where the snapshot isstored.
# 镜像数据位置
dataDir=D:\\developeSoft\\zookeeper\\zookeeper-3.5.2_cluster\\dataDir\\zoo_3_data
#日志位置
dataLogDir=D:\\developeSoft\\zookeeper\\zookeeper-3.5.2_cluster\\dataDir\\zoo_3_log
# ZK 服务器端的监听端口,对应分别:2181 2182 2183
# 目录下创建3份,zoo-1.cfg、zoo-2.cfg、zoo-3,cfg 记得改参数
clientPort=2183
# 伪集群,加入其他两个服务的地址和端口信息
# 2887 是server 之间通讯, 即 leader 与 follower 之间的通读
# 3887 是当集群中的 Leader 服务器挂了,用来执行选举时服务器相互通信的端口
server.1=127.0.0.1:2887:3887
server.2=127.0.0.1:2888:3888
server.3=127.0.0.1:2889:3889
配置文件创建完成后,如图所示:
3.4.1 将zkServer.cmd 改为zkServer-1.cmd,内容修改为:
set ZOOCFG=..\conf\zoo-1.cfg
即:
3.4.2 将zkServer-1.cmd 改为zkServer-2.cmd,内容修改为:
set ZOOCFG=..\conf\zoo-2.cfg
3.4.3 将zkServer-1.cmd 改为zkServer-2.cmd,内容修改为:
set ZOOCFG=..\conf\zoo-3.cfg
在 zoo_1_data、zoo_2_data、zoo_3_data 目录下,分别创建相同名字的 myid 文件,并分别myid 文件中写入数字:1,2、3。
这个的数字是唯一的,在1-255 之间,用来表示自身的id。
在bin目录下 打开多个CMD窗口,分别启动zkServer-1.cmd、zkServer-2.cmd、zkServer-3.cmd
2017-11-07 17:35:17,270 [myid:1] - WARN [WorkerSender[myid=1]:QuorumCnxManager@459] - Cannot open channel to 2 at election address /127.0.0.1:3888
java.net.ConnectException: Connection refused: connect
依次启动时、会有错误信息,因为你启动server1 的时候 ,没有找到server2 和server3 服务,等后面3个服务都启动起来就没问题了。