一、安装前准备

1. 环境要求

  • 操作系统:Linux(任意发行版)或 Windows 7/10/11
  • JDK 版本:1.8 及以上(Zookeeper 运行依赖 Java 环境)
  • 网络:可访问 Apache 镜像源(用于下载安装包)

2. 下载安装包

官方下载地址:https://zookeeper.apache.org/releases.html推荐稳定版本:3.4.14(本文以该版本为例),选择以下任意镜像源下载:

二、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-devel
    
    安装完成后再次执行java -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 版本的完整安装、配置、服务端启动、客户端验证,核心流程与关键问题解决如下:

(一)核心步骤回顾

  1. 下载与解压

    • 解决网络 / 镜像源问题:最终通过 Apache 官方源下载完整安装包
    • 解决权限问题:用sudo提权解压到/usr/local/apache-zookeeper-3.8.4-bin
  2. 配置文件处理

    • 复制模板:conf/zoo_sample.cfg → conf/zoo.cfg
    • 关键配置:修改dataDir和dataLogDir为 Zookeeper 目录下的data/和log/(避免临时目录)
    • 创建目录:mkdir data log并赋予普通用户权限
  3. 服务端验证

    • 启动:bin/zkServer.sh start(提示STARTED)
    • 状态:bin/zkServer.sh status(显示Mode: standalone,单机模式正常)
  4. 客户端验证

    • 启动:bin/zkCli.sh(日志显示Welcome to ZooKeeper!和SyncConnected,连接成功)
    • 命令验证:可执行ls /、create /test "hello"等命令操作节点

(二)常见问题及解决

问题现象原因解决方法
下载失败(403 / 网络不可达)镜像源失效 / 网络限制换官方源下载、本地上传
解压报错(权限不足)普通用户无目录写入权sudo提权解压、赋予目录权限
配置后启动失败数据目录不存在 / 权限错创建data/log目录、chown赋权
ping命令无法中断进程未响应普通中断Ctrl + \强制中断、kill -9杀进程

(三)最终状态

当前 Zookeeper 已成功部署并运行,服务端处于单机可用状态,客户端可正常连接并执行节点操作,满足基础使用需求。

  1. Zookeeper 配置的核心是将zoo_sample.cfg复制为zoo.cfg,并修改数据 / 日志存储目录(避免使用临时目录)。
  2. 服务端通过zkServer.sh start启动,用status验证状态;客户端通过zkCli.sh启动,可执行ls/create/get/delete等命令验证功能。
  3. 操作过程中若遇到权限问题,添加sudo提权或赋予普通用户目录权限即可。

 

    Logo

    北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

    更多推荐