官网下载
官网地址:Apache ZooKeeper[1]

选择当前稳定版本下载,我们可以看到有如下两个选项
Apache ZooKeeper 3.8.4 (asc, sha 512):不带源码
Apache ZooKeeper 3.8.4 Source Release (asc, sha 512):带源码的安装包,对源码感兴趣的可以下载此版本

本次我们选择不含源码版本,之后解压压缩包即可
更改配置
进入到解压后的安装目录下,新增两个文件夹,一个命名为 data ,一个命名为 log
找到解压目录下的 conf 目录,将目录中的 zoo_sample.cfg 文件,复制一份,重命名为 zoo.cfg
修改 zoo.cfg 配置文件,将默认的 dataDir=/tmp/zookeeper 修改成 zookeeper 安装目录所在的 data 文件夹,修改如下
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=E:\Zookeeper\apache-zookeeper-3.8.4-bin\data
dataLogDir=E:\Zookeeper\apache-zookeeper-3.8.4-bin\log
启动服务端
进入安装目录下的 bin 目录,双击 zkServer.cmd 启动

启动客户端
双击 zkCli.cmd 启动

启动之后可以看到 data 和 log 文件夹下均生成了 version-2 文件夹,即可启动成功
注意问题
zk 启动会占用 8080 端口,如果其他项目占用该端口则会启动失败,建议添加配置 admin.serverPort=端口号,以此修改端口
遇到闪退问题可能是 data 路径配置错误,或是没有配置好 JDK 环境和 java 环境变量
集群配置
上述为单机启动,也可以设置集群启动,这里条件有限使用的是伪集群
我们将上述安装目录复制三份,如下

配置 zoo.cfg
然后分别配置三个 zk 的 zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=E:\Zookeeper\apache-zookeeper-3.8.4-bin-1\data
dataLogDir=E:\Zookeeper\apache-zookeeper-3.8.4-bin-1\log
clientPort=2181
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
tickTime=2000
initLimit=10
syncLimit=5
dataDir=E:\Zookeeper\apache-zookeeper-3.8.4-bin-2\data
dataLogDir=E:\Zookeeper\apache-zookeeper-3.8.4-bin-2\log
clientPort=2182
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
tickTime=2000
initLimit=10
syncLimit=5
dataDir=E:\Zookeeper\apache-zookeeper-3.8.4-bin-3\data
dataLogDir=E:\Zookeeper\apache-zookeeper-3.8.4-bin-3\log
clientPort=2183
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
关于 zoo.cfg 的配置进行说明:
① 在集群模式下,集群中每台机器都需要感知到整个集群是由哪几台机器组成的,在配置文件中,可以按照这样的格式进行配置,每一行都代表一个机器配置:server.id=host:port:port。其中,id 被称为 Server ID,用来标识该机器在集群中的机器序列号。同时,在每台 Zookeeper 机器上,我们都需要在数据目录(即 dataDir 参数指定的那个目录)下创建一个 myid 文件,该文件只有一行内容,并且是一个数字,即对应于每台机器的 Server ID 数字。
第一个 port 用于指定 follower 与 leader 进行通信和数据同步所使用的 tcp 端口;第二个 port 指定 leader 选举中投票通信的 tcp 端口。
② 在 Zk 的设计中,集群中所有机器上的 zoo.cfg 文件的内容都应该是一致的。因此最好使用 svn 或是 git 把此文件管理起来,确保每个机器都能共享到一份相同的配置。
③ myid 文件中只有一个数字,即一个 Server ID。例如,server.1 的 myid 文件内容就是”1″。注意,清确保每个服务器的 myid 文件中的数字不同,并且和自己所在机器的 zoo.cfg 中 server.id=houst:port:port 的 id 一致。另外,id 的范围是 1~255。
④ 参数的作用说明:
-
tickTime:默认值为 3000,单位是毫秒(ms),可以不配置。参数 tickTime 用于配置 Zookeeper 中最小时间单元的长度,很多运行时的时间间隔都是使用 tickTime 的倍数来表示的。例如,Zk 中会话的最小超时时间默认是 2*tickTime。
-
dataDir:该参数无默认值,必须配置。参数 dataDir 用于配置 Zookeeper 服务器存储快照文件的目录。
-
clientPort:参数 clientPort 用于配置当前服务器对外的服务端口,客户端会通过该端口和 Zk 服务器创建连接,一般设置为 2181。
-
initLimit:该参数默认值:10,表示是参数 tickTime 值的 10 倍,必须配置,且为正整数。该参数用于配置 Leader 服务器等待 Follower 启动,并完成数据同步的时间。Follower 服务器在启动过程中,会与 Leader 建立连接并完成对数据的同步,从而确定自己对外提高服务的起始状态。leader 服务器允许 Follower 在 initLimit 时间内完成这个工作。
-
syncLimit:该参数默认值:5,表示是参数 tickTime 值的 5 倍,必须配置,且为正整数。该参数用于配置 Leader 服务器和 Follower 之间进行心跳检测的最大延时时间。在 Zk 集群运行的过程中,Leader 服务器会与所有的 Follower 进行心跳检测来确定该服务器是否存活。如果 Leader 服务器在 syncLimit 时间内无法获取到 Follower 的心跳检测响应,那么 Leader 就会认为该 Follower 已经脱离了和自己的同步。
-
server.id:该参数无默认值,在单机模式下可以不配置。该参数用于配置组成 Zk 集群的机器列表,其中 id 即为 Server ID,与每台服务器 myid 文件中的数字相对应。同时,在该参数中,会配置两个端口:第一个端口用于指定 Follower 服务器与 Leader 进行运行时通信和数据同步时所使用的端口,第二个端口测专门用于进行 Leader 选举过程中的投票通信。
创建 myid
分别在三个 zk 安装目录下的 data 目录下创建 myid 文件,然后在该文件第一行填上对应的数字
E:\Zookeeper\apache-zookeeper-3.8.4-bin-1\data 创建值为"1"的myid文件
E:\Zookeeper\apache-zookeeper-3.8.4-bin-2\data 创建值为"2"的myid文件
E:\Zookeeper\apache-zookeeper-3.8.4-bin-3\data 创建值为"3"的myid文件
启动集群
分别启动三个 zk 的 zkServer.cmd(未全部启动会出现报错,原因是心跳检测失败,全部启动即可)
方便起见也可以使用如下 bat 脚本启动全部节点
start call E:\Zookeeper\apache-zookeeper-3.8.4-bin-1\bin\zkServer.cmd
start call E:\Zookeeper\apache-zookeeper-3.8.4-bin-2\bin\zkServer.cmd
start call E:\Zookeeper\apache-zookeeper-3.8.4-bin-3\bin\zkServer.cmd
客户端连接测试
zkCli.cmd -server 127.0.0.1:2181
# 当然连接 2182,2183 也可以
节点可视化
查看 zookeeper 上的节点信息时,输命令很麻烦,可以使用常用的可视化的客户端 zooinspector
zooinspector 仓库:zzhang5/zooinspector: An improved zookeeper inspector (github.com)[2]
参考链接
-
Windows 下 Zookeeper 安装使用 – 简书 (jianshu.com)[3] -
Windows 安装 Zookeeper 详细步骤_windows 安装 zookeeper[4] -
Windows 下安装 ZooKeeper-阿里云开发者社区 (aliyun.com)[5] -
Windows 安装 Zookeeper – codedot – 博客园 (cnblogs.com)[6]
参考资料
Apache ZooKeeper: https://zookeeper.apache.org/index.html
[2]
zzhang5/zooinspector: An improved zookeeper inspector (github.com): https://github.com/zzhang5/zooinspector
[3]
Windows 下 Zookeeper 安装使用 – 简书 (jianshu.com): https://www.jianshu.com/p/0447ab3dfd5b
[4]
Windows 安装 Zookeeper 详细步骤_windows 安装 zookeeper: https://blog.csdn.net/wxw1997a/article/details/119998932
[5]
Windows 下安装 ZooKeeper-阿里云开发者社区 (aliyun.com): https://developer.aliyun.com/article/879449
[6]
Windows 安装 Zookeeper – codedot – 博客园 (cnblogs.com): https://www.cnblogs.com/myitnews/p/13739514.html
原文始发于微信公众号(编程杂烩):Zookeeper Windows 安装配置(单机 – 集群)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/251193.html