目录
- 准备工作
- 下载 Zookeeper
- 在 Linux 系统上安装与配置
- 在 Windows 系统上安装与配置
- 启动、停止与验证 Zookeeper
- 常见问题与解决方案
准备工作
在开始之前,请确保你的系统满足以下基本要求:

- Java 环境: Zookeeper 是一个用 Java 编写的应用,因此必须安装 Java 运行环境,推荐使用 JDK 8 或更高版本。
- 验证 Java 安装: 打开终端(Linux/macOS)或命令提示符(Windows),输入以下命令检查 Java 版本。
java -version
如果看到类似
java version "1.8.0_321"的输出,说明 Java 已安装,如果没有,请先安装 Java。
下载 Zookeeper
- 访问官网: 打开 Zookeeper 官方下载页面:https://zookeeper.apache.org/releases.html
- 选择版本: 在 "Stable Releases" (稳定版) 部分,选择最新的稳定版本(
8.3)。 - 下载文件: 找到 "Binary" 下载链接,通常是
apache-zookeeper-3.8.3-bin.tar.gz(用于 Linux/macOS) 或apache-zookeeper-3.8.3-bin.zip(用于 Windows),点击下载。
在 Linux 系统上安装与配置
步骤 1: 解压文件
假设你将下载的文件放在了 /opt 目录下。
# 进入/opt目录 cd /opt # 解压 .tar.gz 文件 sudo tar -zxvf apache-zookeeper-3.8.3-bin.tar.gz # 创建一个软链接,方便后续升级 sudo ln -s apache-zookeeper-3.8.3 zookeeper
步骤 2: 创建数据目录和日志目录
Zookeeper 需要一个地方来存储数据(dataDir)和日志(dataLogDir)。
# 在 zookeeper 目录下创建数据目录和日志目录 sudo mkdir zookeeper/data sudo mkdir zookeeper/logs
步骤 3: 配置 Zookeeper
Zookeeper 的核心配置文件是 zoo.cfg,我们需要从示例文件复制一份并进行修改。

# 复制示例配置文件 sudo cp zookeeper/conf/zoo_sample.cfg zookeeper/conf/zoo.cfg
编辑 zoo.cfg 文件:
sudo vim zookeeper/conf/zoo.cfg
找到并修改以下几项配置:
# 数据存储目录,指向我们刚才创建的目录 dataDir=/opt/zookeeper/data # 日志存储目录,指向我们刚才创建的目录 dataLogDir=/opt/zookeeper/logs # 客户端连接的端口号,默认是2181,可以不修改 # clientPort=2181 # (可选) 在文件末尾添加以下配置,方便通过systemctl管理 # 这一步不是必须的,但推荐做 admin.serverPort=8080
保存并退出编辑器。
步骤 4: 配置系统环境变量 (可选)
为了在任何目录下都能方便地使用 zkServer.sh 等脚本,可以配置环境变量。

# 打开 profile 文件 sudo vim /etc/profile # 在文件末尾添加以下内容 export ZOOKEEPER_HOME=/opt/zookeeper export PATH=$PATH:$ZOOKEEPER_HOME/bin # 保存后,使配置生效 source /etc/profile
在 Windows 系统上安装与配置
步骤 1: 解压文件
假设你将下载的 apache-zookeeper-3.8.3-bin.zip 文件放在了 D:\dev\tools 目录下。
- 使用解压缩软件(如 WinRAR, 7-Zip)或直接右键解压到当前文件夹。
- 解压后,你会得到一个
apache-zookeeper-3.8.3-bin文件夹。 - 为了方便,将其重命名为
zookeeper,所以你的最终路径是D:\dev\tools\zookeeper。
步骤 2: 创建数据目录和日志目录
在 D:\dev\tools\zookeeper 目录下,手动创建两个文件夹:data 和 logs。
步骤 3: 配置 Zookeeper
- 进入
D:\dev\tools\zookeeper\conf目录。 - 找到
zoo_sample.cfg文件,将其复制一份并重命名为zoo.cfg。 - 用记事本或 VS Code 等文本编辑器打开
zoo.cfg文件。
找到并修改以下几项配置(注意 Windows 路径使用反斜杠 \):
# 数据存储目录,指向我们刚才创建的目录 dataDir=D:\\dev\\tools\\zookeeper\\data # 日志存储目录,指向我们刚才创建的目录 dataLogDir=D:\\dev\\tools\\zookeeper\\logs # 客户端连接的端口号,默认是2181 # clientPort=2181 # (可选) 在文件末尾添加 admin.serverPort=8080
注意: 在 Windows 的配置文件中,路径分隔符 \ 是一个特殊字符,需要用双反斜杠 \\ 来表示,或者使用正斜杠 。D:/dev/tools/zookeeper/data 也可以。
启动、停止与验证 Zookeeper
启动 Zookeeper
-
Linux:
# 使用我们配置的软链接路径 /opt/zookeeper/bin/zkServer.sh start # 或者如果你配置了环境变量 zkServer.sh start
-
Windows: 打开命令提示符(CMD)或 PowerShell,进入 Zookeeper 的
bin目录,然后执行:cd D:\dev\tools\zookeeper\bin zkServer.cmd start
启动后,你应该会看到类似 ZooKeeper JMX enabled by default 的输出,表示启动成功。
查看 Zookeeper 状态
-
Linux:
/opt/zookeeper/bin/zkServer.sh status
输出应该是
Mode: standalone(单机模式)。 -
Windows:
zkServer.cmd status
停止 Zookeeper
-
Linux:
/opt/zookeeper/bin/zkServer.sh stop
-
Windows:
zkServer.cmd stop
验证 Zookeeper 服务
最直接的验证方法是使用 Zookeeper 提供的命令行客户端工具 zkCli.sh (Linux) 或 zkCli.cmd (Windows) 连接到服务端。
-
Linux:
/opt/zookeeper/bin/zkCli.sh
-
Windows:
zkCli.cmd
成功连接后,你会看到 [zk: localhost:2181(CONNECTED) 0] 这样的提示符,现在你可以执行一些基本命令:
-
查看根目录下的节点:
ls /
(应该能看到
zookeeper节点) -
创建一个临时节点:
create /test-node "hello zookeeper"
-
获取节点的值:
get /test-node
-
删除节点:
delete /test-node
-
退出客户端:
quit
如果以上命令都能正常执行,那么恭喜你,Zookeeper 已经成功安装并运行!
常见问题与解决方案
-
问题:
bash: zkServer.sh: command not found- 原因: Linux 系统没有将 Zookeeper 的
bin目录添加到PATH环境变量。 - 解决: 请参考第 3 节的步骤 4,配置并重新加载
/etc/profile文件。
- 原因: Linux 系统没有将 Zookeeper 的
-
问题:
Error contacting service. It is probably not running.- 原因: Zookeeper 服务没有启动,或者
zoo.cfg文件中的dataDir路径不存在或无法访问。 - 解决:
- 确认
dataDir和dataLogDir目录存在且有正确的读写权限。 - 尝试手动启动服务,并查看控制台输出的错误信息。
- 确认
- 原因: Zookeeper 服务没有启动,或者
-
问题: Windows 下路径问题
- 原因:
zoo.cfg中的路径格式不正确。 - 解决: 确保 Windows 路径使用
D:\\path\\to\\dir或D:/path/to/dir的格式。
- 原因:
-
问题: 端口被占用
- 原因:
2181或8080端口已被其他程序占用。 - 解决:
- 在 Linux 上使用
netstat -tulnp | grep 2181查看占用端口的进程。 - 在 Windows 上使用
netstat -ano | findstr "2181"查看占用端口的进程。 - 修改
zoo.cfg中的clientPort或admin.serverPort为一个未被占用的端口号。
- 在 Linux 上使用
- 原因:
