在Windows系统上安装zookeeper

简介: 在Windows系统上安装zookeeper

文章目录

概述

ZooKeeper 是分布式应用程序的高性能协调服务。它在一个简单的界面中公开了常用服务,例如命名、配置管理、同步和组服务,因此可以不必从头开始编写它们。可以现成地使用它来实现共识、组管理、领导者选举和存在协议,也可以根据自己的特定需求在此基础上进行构建。

下载

可以在Zookeper官网下载页下载zookeeper,这里有最新的zk发布包。

我这里下载是3.6.3版本,是截止到这篇博文发布前最稳定版本,下载链接为https://dlcdn.apache.org/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz

image.png

安装

  1. 下载完成之后解压下载的压缩包到自己电脑盘符下,我这里是在D:\zookeeper下解压的,解压后根目录为D:\zookeeper\zookeeper-3.6.3


  1. 解压后进入conf文件夹下面,把zoo_sample.cfg复制一份并改名为zoo.cfg,zoo.cfg是zookeeper配置文件入口。


  1. 在根目录下新建一个data文件夹,用于存储内存数据库快照, 修改配置文件,将dataDir属性修改为自定义的data路径下,dataDir=D:/zookeeper/zookeeper-3.6.3/data,注意:路径分隔符要用反斜杠 /

这样配置就基本结束了,接下来就是启动了,启动分为两种,单机版和集群版

单机版

zookeeper的启动命令都在bin目录下,进入bin目录下,.cmd是Windows版本的命令,.sh 是Linux的命令。

找到zkServer.cmd,

image.png

双击启动,看到如下窗口,不闪退,不报错就是启动成功了

image.png

也可以通过,双击客户端zkCli.cmd批处理命令来验证server是否启动成功。看到如下红框的内容则server启动成功

image.png

或者在配置文件中开启日志审核功能,audit.enable=true

在根目录下的logs文件夹下找到zookeeper_audit.log文件,看到如下结果则server启动成功

image.png

审核日志是3.6.0 中的新功能:默认情况下禁用审核日志。设置为“true”以启用它,有关日志审核可以查看https://zookeeper.apache.org/doc/r3.6.3/zookeeperAuditLogs.html

这样,单机版就完成了。

集群版

集群版就像对麻烦一点了,这里的集群还是伪集群,真正实现集群的操作跟单机版的伪集群差不多,只不过是操作不同的服务器而已。

步骤如下:

  1. 修改配置文件:找到zoo.cfg配置文件,在文件最后加上
# 集群配置
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890

配置介绍:

集群配置节点是server.id=host:port1:port2形式,

id:分配给host的id,需要在myid文件中指定,id 必须介于 1 和 254 之间

host:zookeeper所在服务器的IP

port1:Zookeeper服务器之间的通信端口

port2:Leader选举的端口

从 ZooKeeper 3.6.0 开始,可以为每个 ZooKeeper 服务器 指定多个地址

形如:

server.1=zoo1-net1:2888:3888|zoo1-net2:2889:3889
server.2=zoo2-net1:2888:3888|zoo2-net2:2889:3889
server.3=zoo3-net1:2888:3888|zoo3-net2:2889:3889

2、添加myid文件

myid文件代表着该zookeeper服务器的id文件,内容也很简单,就是一个名为myid的文件,文件内容就只有一个上面所说的id。

在Windows系统中,创建一个名为myid的文本文件,然后输入一个id,最后删除文件后缀,不要任何后缀,否则会启动会报myid找不到异常。

myid文件所在的路径就是配置文件中dataDir指定的路径下。

image.png

3、集群复制多份,将上述配置好的zookeeper复制两份,并修改每个配置文件中的clientPort、dataDir和admin.serverPort属性,还有myid中的数值。

clientPort:客户端连接Zookeeper服务器的端口。Zookeeper会监听这个端口,接受客户端的访问请求。

admin.serverPort:嵌入式 Jetty 服务器监听的端口,默认为 8080。

AdminServer是3.5.0 中新添加的功能,更多可以查看https://zookeeper.apache.org/doc/r3.6.3/zookeeperAdmin.html#sc_adminserver


配置文件:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:/zookeeper/zookeeper-3.6.3/data
dataLogDir=D:/zookeeper/zookeeper-3.6.3/logs
clientPort=2181
maxClientCnxns=60
# 嵌入式 Jetty 服务器监听的端口。默认为 8080
admin.serverPort=8081
messageTracker.Enabled=true
# 日志审核
audit.enable=true
# 集群配置
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890
  1. 启动集群, 分别到对应zookeeper集群的文件夹下双击zkServer.cmd批处理命令,出现以下日志则代表成功
2022-02-10 16:55:41,612 [myid:1] - INFO  [QuorumPeer[myid=1](plain=[0:0:0:0:0:0:0:0]:2181)(secure=disabled):QuorumPeer@864] - Peer state changed: following - broadcast
2022-02-10 16:55:49,084 [myid:3] - INFO  [QuorumPeer[myid=3](plain=[0:0:0:0:0:0:0:0]:2183)(secure=disabled):QuorumPeer@864] - Peer state changed: following - broadcast

或者

2022-02-10 16:55:41,611 [myid:2] - INFO  [QuorumPeer[myid=2](plain=[0:0:0:0:0:0:0:0]:2182)(secure=disabled):QuorumPeer@864] - Peer state changed: leading - broadcast

可以看到三个zookeeper服务器,一个leader,两个following。

配置介绍

  • tickTime:心跳时间,单位毫秒,默认2000。zookeeper最小的会话超时时间是2个tickTime。
  • initLimit: follower连接和同步leader的超时时间,以tickTime为单位,默认10,也就是说10*tickTime时间之后客户端还没连接到服务器,则客户端连接失败。如果 ZooKeeper 管理的数据量很大,则根据需要增加此值。
  • syncLimit:follower连接和同步leader的超时时间,这个时间是leader向follower发送心跳之后,如果在syncLimit时间内没有收到follower的回信,表示follower掉线了。以tickTime为单位
  • dataDir:用于存储内存数据库快照的路径
  • dataLogDir:允许配置使用专用的日志设备,并有助于避免日志记录和快照之间的竞争。拥有专用日志设备对吞吐量和稳定延迟有很大影响。强烈建议专用日志设备并将dataLogDir设置为指向该设备上的目录,然后确保将dataDir指向不在该设备上的目录。
  • clientPort:客户端连接Zookeeper服务器的端口。Zookeeper会监听这个端口,接受客户端的访问请求。
  • maxClientCnxns:通过 IP 地址限制单个客户端可以对 ZooKeeper 集合的单个服务器进行的并发连接数。用于防止某些类别的 DoS 攻击,包括文件描述符耗尽。默认值为 60。将此设置为 0 完全消除了对并发连接的限制。
  • admin.serverPort:嵌入式 Jetty 服务器监听的端口。默认为 8080
  • audit.enable:默认情况下禁用审核日志,默认值false。3.6.0 中的新功能
  • electionAlg:选举算法,0表示leader选举算法(基于UDP),1对应非认证的基于UDP的快速leader选举版本,2对应认证的基于UDP的快速leader选举版本,3对应基于TCP的快速leader版本选举。默认值是3。
  • autopurge.purgeInterval:Zookeeper服务端自动清除多余的日志和快照文件的周期,以小时为单位,设置正整数表示开启自动清除,默认0,不开启
  • server.id=host:port1:port2

id:分配给host的id,需要在myid文件中指定,id 必须介于 1 和 254 之间

host:zookeeper所在服务器的IP

port1:Zookeeper服务器之间的通信端口

port2:Leader选举的端口

更多配置请查看官网


能力一般,水平有限,如有错误,请多指出。

如果对你有用点个关注给个赞呗


目录
相关文章
|
6月前
|
人工智能 JavaScript 开发工具
极速上手!Claude Code 原生支持 Windows 免WSL安装教程
Claude Code 现已支持 Windows 原生运行,无需 WSL 配置。本文提供详细安装教程,涵盖 Node.js 环境验证、Git 安装及 Claude Code 配置步骤,助你快速上手这一强大 AI 编程工具。
4625 5
|
6月前
|
存储 虚拟化 Windows
VMware安装Windows10
本案例介绍了在Windows系统上使用VMware Workstation 17.5 Pro安装配置Windows 10虚拟机的详细步骤,包括所需设备、软件下载链接、虚拟机设置及系统安装全过程。
2834 133
VMware安装Windows10
|
7月前
|
Ubuntu Unix Linux
在Windows上轻松安装和使用Ubuntu的方法详解
继续点击“Continue”按钮以继续安装流程,随后选择清理磁盘并安装操作系统的选项。 接下来,在安装过程中,你需要选择时区。为了与你的地理位置相匹配,请选择中国上海作为你的时区设置。 在安装过程中,你还需要设置计算机的名称以及账号密码。请务必牢记这些信息,因为它们将作为你登录系统的凭证。
|
5月前
|
安全 Ubuntu iOS开发
Nessus Professional 10.10 Auto Installer for Windows - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for Windows - Nessus 自动化安装程序
242 3
Nessus Professional 10.10 Auto Installer for Windows - Nessus 自动化安装程序
|
6月前
|
运维 安全 Linux
【清爽加速】Windows 11 Pro 24H2-Emmy精简系统
“清爽加速”Windows 11 Pro 24H2 针对老旧或低配设备,通过精简系统、优化服务与简化装机流程,降低资源占用,提升运行流畅度,兼顾安全性与稳定性,让老设备也能轻松应对日常办公与轻度娱乐需求。
365 1
【清爽加速】Windows 11 Pro 24H2-Emmy精简系统
|
6月前
|
安全 搜索推荐 开发者
【适度精简】Windows 7 旗舰版-emmy精简系统
Windows 7旗舰版因硬件占用高、冗余组件多、兼容性差及缺乏安全更新等问题,逐渐难以满足用户需求。适度精简版通过去除无用组件、优化性能与安全性,提升老旧设备运行效率,增强兼容性与稳定性,同时保留用户熟悉的操作界面,降低学习成本,满足个性化需求,延续Windows 7的实用价值。
322 2
|
6月前
|
安全 数据安全/隐私保护 Windows
ZyperWin++使用教程!让Windows更丝滑!c盘飘红一键搞定!ZyperWin++解决系统优化、Office安装和系统激活
ZyperWin++是一款仅5MB的开源免费Windows优化工具,支持快速优化、自定义设置与垃圾清理,兼具系统加速、隐私保护、Office安装等功能,轻便无广告,小白也能轻松上手,是提升电脑性能的全能管家。
1853 0