zookeeper安装
一、安装前准备
1. 环境要求
- 操作系统:Linux(任意发行版)或 Windows 7/10/11
- JDK 版本:1.8 及以上(Zookeeper 运行依赖 Java 环境)
- 网络:可访问 Apache 镜像源(用于下载安装包)
2. 下载安装包
官方下载地址:https://zookeeper.apache.org/releases.html推荐稳定版本:3.4.14(本文以该版本为例),选择以下任意镜像源下载:
- 清华大学镜像:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
- 北京理工大学镜像:https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
二、Linux 系统安装与验证
1. 下载官方安装包(3.8.4 版本)
执行以下命令(用官方源,稳定性高):
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
下载完成后,可通过ls -l查看包的大小(正常 3.8.4 的包约 30MB 左右),如果大小只有几 KB,说明下载还是失败了。

2.执行解压命令:下载成功后,再用正确的命令解压(注意参数是-zxvf,且-C前面是空格):
tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz -C /usr/local/
如果遇到权限不足导致的问题而无法解压 —— 你当前用的centos普通用户,没有权限往/usr/local/目录下创建文件夹和解压文件。
解决方法:
在解压命令前加sudo(以管理员权限执行),或者切换到root用户操作:
方法 1:用 sudo 临时提权解压
sudo tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz -C /usr/local/
执行后会提示输入centos用户的密码(输入时不会显示字符,直接输完按回车即可)。
方法 2:切换到 root 用户操作
# 切换到root用户(输入root密码)
su root
# 再执行解压命令
tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz -C /usr/local/
解压完成后,记得给普通用户赋予 Zookeeper 目录的权限(避免后续操作又有权限问题):
sudo chown -R centos:centos /usr/local/apache-zookeeper-3.8.4-bin/

3.进入解压目录的命令
(1)直接通过绝对路径进入(推荐,不易出错)
# 进入/usr/local目录下的Zookeeper解压目录
cd /usr/local/apache-zookeeper-3.8.4-bin/
(2)若已在安装包所在目录,可通过相对路径进入(如果解压到当前目录)
# 先进入/usr/local目录(安装包如果在这个目录的话)
cd /usr/local/
# 再进入解压后的目录
cd apache-zookeeper-3.8.4-bin/
(3)验证是否成功进入目录
执行完cd命令后,可输入以下命令查看当前所在路径:
pwd
如果输出/usr/local/apache-zookeeper-3.8.4-bin,说明已经成功进入解压后的目录。
(4)(可选)简化目录名后进入
如果觉得目录名太长,可先重命名再进入(需要管理员权限):
# 重命名目录为zookeeper(更简洁)
sudo mv /usr/local/apache-zookeeper-3.8.4-bin /usr/local/zookeeper
# 进入重命名后的目录
cd /usr/local/zookeeper/
已经成功解压 Zookeeper 并能进入解压目录,接下来我会带你完成配置、服务端启动、客户端命令验证的完整步骤,全程基于 Linux 系统(CentOS)和 Zookeeper 3.8.4 版本。
4.前置准备:确认 JDK 环境(Zookeeper 依赖 Java)
首先检查服务器是否安装了 JDK,这是 Zookeeper 运行的必要条件:
# 检查Java版本
java -version

- 如果输出 Java 版本(如 1.8、11 等),说明已安装,直接跳过这一步。
- 如果提示
java: command not found,先安装 JDK(以 OpenJDK 1.8 为例)
安装完成后再次执行sudo yum install -y java-1.8.0-openjdk-develjava -version验证。
三、配置 Zookeeper 核心配置文件
1. 回到正确的配置目录
(当前你已经在apache-zookeeper-3.8.4-bin/conf/目录,可直接编辑配置文件)
# 确保在正确的conf目录下(截图里已经在这了)
cd /usr/local/apache-zookeeper-3.8.4-bin/conf/
2. 编辑 zoo.cfg(修改数据 / 日志目录)
# 编辑配置文件
vi zoo.cfg
在文件中修改dataDir(把默认的/tmp/zookeeper改成自定义目录):
# 原配置:dataDir=/tmp/zookeeper
dataDir=/usr/local/apache-zookeeper-3.8.4-bin/data
dataLogDir=/usr/local/apache-zookeeper-3.8.4-bin/log
修改后按Esc,输入:wq保存退出。
3. 创建 data 和 log 目录
# 回到Zookeeper根目录
cd /usr/local/apache-zookeeper-3.8.4-bin/
# 创建data目录
sudo mkdir data
# 创建log目录
sudo mkdir log
# 赋予权限(避免后续操作报错)
sudo chown -R centos:centos /usr/local/apache-zookeeper-3.8.4-bin/
4. 启动服务端(进入 bin 目录)
cd /usr/local/apache-zookeeper-3.8.4-bin/bin/
# 启动服务
./zkServer.sh start
# 查看状态
./zkServer.sh status

四、启动客户端并执行命令验证
1. 启动 Zookeeper 客户端
# 连接本地的Zookeeper服务(默认端口2181)
./zkCli.sh
成功提示:会看到Welcome to ZooKeeper!的输出,进入客户端命令行(提示符为[zk: localhost:2181(CONNECTED) 0])。
2. 执行核心客户端命令(验证功能)
依次执行以下命令,验证 Zookeeper 的基本操作:
# 1. 查看根节点下的子节点(默认有zookeeper节点)
ls /
# 2. 创建一个新节点/test,并赋值"hello zookeeper"
create /test "hello zookeeper"
# 3. 获取/test节点的内容
get /test
# 4. 修改/test节点的内容为"hello world"
set /test "hello world"
# 5. 再次获取/test节点内容,验证修改成功
get /test
# 6. 删除/test节点
delete /test
# 7. 退出客户端
quit

五、额外:服务端常用命令
# 停止Zookeeper服务
./zkServer.sh stop
# 重启Zookeeper服务
./zkServer.sh restart
六、总结
本次实践完成了 Zookeeper 3.8.4 版本的完整安装、配置、服务端启动、客户端验证,核心流程与关键问题解决如下:
(一)核心步骤回顾
-
下载与解压
- 解决网络 / 镜像源问题:最终通过 Apache 官方源下载完整安装包
- 解决权限问题:用
sudo提权解压到/usr/local/apache-zookeeper-3.8.4-bin
-
配置文件处理
- 复制模板:
conf/zoo_sample.cfg→conf/zoo.cfg - 关键配置:修改
dataDir和dataLogDir为 Zookeeper 目录下的data/和log/(避免临时目录) - 创建目录:
mkdir data log并赋予普通用户权限
- 复制模板:
-
服务端验证
- 启动:
bin/zkServer.sh start(提示STARTED) - 状态:
bin/zkServer.sh status(显示Mode: standalone,单机模式正常)
- 启动:
-
客户端验证
- 启动:
bin/zkCli.sh(日志显示Welcome to ZooKeeper!和SyncConnected,连接成功) - 命令验证:可执行
ls /、create /test "hello"等命令操作节点
- 启动:
(二)常见问题及解决
| 问题现象 | 原因 | 解决方法 |
|---|---|---|
| 下载失败(403 / 网络不可达) | 镜像源失效 / 网络限制 | 换官方源下载、本地上传 |
| 解压报错(权限不足) | 普通用户无目录写入权 | sudo提权解压、赋予目录权限 |
| 配置后启动失败 | 数据目录不存在 / 权限错 | 创建data/log目录、chown赋权 |
ping命令无法中断 | 进程未响应普通中断 | Ctrl + \强制中断、kill -9杀进程 |
(三)最终状态
当前 Zookeeper 已成功部署并运行,服务端处于单机可用状态,客户端可正常连接并执行节点操作,满足基础使用需求。
- Zookeeper 配置的核心是将
zoo_sample.cfg复制为zoo.cfg,并修改数据 / 日志存储目录(避免使用临时目录)。 - 服务端通过
zkServer.sh start启动,用status验证状态;客户端通过zkCli.sh启动,可执行ls/create/get/delete等命令验证功能。 - 操作过程中若遇到权限问题,添加
sudo提权或赋予普通用户目录权限即可。
更多推荐


所有评论(0)