一、搭建
1.集群节点1创建
首先我们从官网下载下来zookeeper
http://zookeeper.apache.org/releases.html
然后解压到本地,我们先创建数据目录
在和bin同级目录下创建data文件夹如图

在conf目录下复制zoo_sample.cfg 为zoo.cfg

对于zoo.cfg修改如下

对于集群节点1的配置文件
1.我们修改了数据文件指向(dataDir=E:\apache-zookeeper-3.5.5-bin\apache-zookeeper-3.5.5-bin\data)也就是指向到我们刚才创建的文件夹(windows环境下目录需要\,不然\会闪退)
2.我们增加集群配置
server.1=127.0.0.1:8401:9301
server.2=127.0.0.1:8402:9302
server.3=127.0.0.1:8403:9303
127.0.0.1代表集群节点IP
8401代表集群节点通信的端口
9301代表集群节点选举的端口
然后我们回到data文件夹下 增加myid文件如图

编辑myid文件输入1代表它为集群节点1

因为很多情况下,比如我们配置错误的data路径可能导致zookeeper闪退,但是我们希望不要闪退我们能更好看到问题,对此我们需要修改zkServer.cmd(因为我们是windows环境下),修改如下

在末尾加入pause
2.集群节点2创建
我们复制集群节点1文件 为apache-zookeeper-3.5.5-bin - 2,对于集群节点2我们先修改

因为集群节点2是从集群节点1复制过来,我们只需要修改data路径和zookeeper连接端口
修改data文件夹下myid,修改如下

myid中2代表集群节点2
3.集群节点3创建
我们复制集群节点1文件 为apache-zookeeper-3.5.5-bin - 3,对于集群节点2我们先修改

因为集群节点3是从集群节点1复制过来,我们只需要修改data路径和zookeeper连接端口
修改data文件夹下myid,修改如下

myid中3代表集群节点3
二、验证
1.脚本制作
对于我们来说一个个启动未免太low,在windows环境下我们可以写个小的脚本,我们新建文件zookeeperstart.bat ,如下

对于脚本中内容如下
@echo off
title zookeeper集群启动
cd /d E:\apache-zookeeper-3.5.5-bin\apache-zookeeper-3.5.5-bin\bin
start zkServer.cmd
echo zookeeper集群节点1启动
cd /d E:\apache-zookeeper-3.5.5-bin\apache-zookeeper-3.5.5-bin - 2\bin
start zkServer.cmd
echo zookeeper集群节点2启动
cd /d E:\apache-zookeeper-3.5.5-bin\apache-zookeeper-3.5.5-bin - 3\bin
start zkServer.cmd
echo zookeeper集群节点3启动
pause
对于这个脚本,我们需要替换掉各自对应的集群节点目录,正常情况下脚本执行完毕窗口显示如下

2.集群验证
首先我们打开zookeeper集群节点1 bin目录下zkCli.cmd输入ls /查看当前zookeeper中包含的内容,
然后我们执行create /test 创建test数据节点

我们切换到集群节点2 查看集群节点2的数据节点

网友评论