ZooKeeper 3.4.13 单机安装详解
摘要本文详细介绍了 ZooKeeper 3.4.13 单机版的完整安装与配置流程。内容涵盖环境准备JDK 检查与安装、ZooKeeper 下载解压、核心配置文件zoo.cfg 与 log4j.properties编写、环境变量配置、服务启动与状态检查、客户端连接测试、开机自启设置以及常见问题排查。教程以 CentOS 7 为例步骤清晰适合初学者快速搭建 ZooKeeper 开发测试环境。目录1. 前言2. 环境准备2.1 检查 JDK 版本2.2 确认系统环境3. 下载 ZooKeeper 3.4.134. 解压与安装5. 配置 ZooKeeper5.1 创建数据目录5.2 编写 zoo.cfg 配置文件5.3编辑log4j.properties6. 配置环境变量可选7. 启动 ZooKeeper8. 验证与测试8.1 使用自带客户端连接8.2 检查端口监听9. 配置开机自启可选10. 常见问题排查10.1 启动报错 Error: Could not find or load main class10.2 端口被占用10.3 dataDir 目录权限不足11. 总结1. 前言Apache ZooKeeper 是一个分布式协调服务广泛应用于 Dubbo、Kafka、HBase 等分布式系统中负责配置管理、命名服务、分布式锁、集群管理等功能。本文以 CentOS 7 环境为例详细介绍 ZooKeeper 3.4.13 单机版的安装与配置流程适合初学者快速上手。2. 环境准备安装 ZooKeeper 之前需要确保系统中已安装 JDK。ZooKeeper 3.4.13 要求 JDK 1.7 及以上版本推荐使用 JDK 1.8。2.1 检查 JDK 版本java -version如果未安装 JDK请先执行以下命令安装 OpenJDK 1.8yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel2.2 确认系统环境本文演示环境为 CentOS 7.6其他 Linux 发行版如 Ubuntu操作步骤基本一致仅包管理命令略有差异。3. 下载 ZooKeeper 3.4.13ZooKeeper 官方提供了各版本的镜像下载地址。推荐从 Apache 归档站点下载cd /usr/local/src wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz如果服务器网络受限也可以提前下载到本地再通过 FTP/SCP 上传至服务器。4. 解压与安装将下载好的压缩包解压到/usr/local/目录下并重命名目录以方便后续维护tar -zxvf zookeeper-3.4.13.tar.gz -C /usr/local/ mv /usr/local/zookeeper-3.4.13 /usr/local/zookeeper解压后的目录结构如下bin/存放启动、停止脚本以及客户端命令行工具。conf/配置文件目录核心配置为zoo.cfg。lib/ZooKeeper 运行所需的依赖 jar 包。data/需手动创建存放快照和事务日志。5. 配置 ZooKeeper5.1 创建数据目录mkdir -p /usr/local/zookeeper/data5.2 编写 zoo.cfg 配置文件进入 conf 目录将示例配置文件复制为实际使用的配置文件cd /usr/local/zookeeper/conf cp zoo_sample.cfg zoo.cfg编辑zoo.cfg修改以下关键参数vim zoo.cfg核心配置项说明# ZooKeeper 基本时间单元单位为毫秒所有超时时间都以此为基础 tickTime2000 Follower 启动时与 Leader 同步数据的超时时间 initLimit10 Follower 与 Leader 之间心跳的最大延迟 syncLimit5 快照和事务日志的存储目录 dataDir/usr/local/zookeeper/data dataLogDir/usr/local/zookeeper/data-log 客户端连接端口 clientPort2181单机部署只需关注上述几项配置即可dataDir务必指向实际存在且有写入权限的目录。5.3编辑log4j.propertiesvim log4j.properties修改日志目录zookeeper.tracelog.dir/home/erbao/zookeeper/zookeeper-3.4.13/logs zookeeper.log.dir/home/erbao/zookeeper/zookeeper-3.4.13/logs6. 配置环境变量可选为方便在任何目录下直接使用 ZooKeeper 命令建议将其 bin 目录追加到系统 PATH 中echo export ZOOKEEPER_HOME/usr/local/zookeeper /etc/profile echo export PATH$ZOOKEEPER_HOME/bin:$PATH /etc/profile source /etc/profile7. 启动 ZooKeeper执行以下命令启动 ZooKeeper 服务cd /usr/local/zookeeper/bin ./zkServer.sh start启动成功后终端输出类似ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED查看服务状态./zkServer.sh status单机模式下状态显示为standalone表示 ZooKeeper 已成功运行。8. 验证与测试8.1 使用自带客户端连接ZooKeeper 提供了命令行客户端zkCli.sh用于连接服务并执行读写操作./zkCli.sh -server 127.0.0.1:2181连接成功后进入交互式命令行可以测试以下基本操作# 创建节点 create /test hello-zookeeper 查看节点数据 get /test 列出根节点下的所有子节点 ls / 删除节点 delete /test8.2 检查端口监听netstat -tlnp | grep 2181如果看到端口 2181 处于 LISTEN 状态说明 ZooKeeper 服务已正常监听。9. 配置开机自启可选使用 systemd 管理 ZooKeeper 服务方便开机自动启动和服务管理。创建服务文件vim /etc/systemd/system/zookeeper.service写入以下内容[Unit] DescriptionApache ZooKeeper Afternetwork.target [Service] Typeforking EnvironmentZOO_LOG_DIR/usr/local/zookeeper/logs ExecStart/usr/local/zookeeper/bin/zkServer.sh start ExecStop/usr/local/zookeeper/bin/zkServer.sh stop ExecReload/usr/local/zookeeper/bin/zkServer.sh restart Restarton-failure [Install] WantedBymulti-user.target启用并启动服务systemctl daemon-reload systemctl enable zookeeper systemctl start zookeeper10. 常见问题排查10.1 启动报错 Error: Could not find or load main class通常是 JDK 未安装或 JAVA_HOME 环境变量未配置。请检查java -version是否正常输出必要时在/etc/profile中配置JAVA_HOME。10.2 端口被占用如果 2181 端口已被其他进程占用可以在zoo.cfg中修改clientPort为其他端口如 2182然后重启服务。10.3 dataDir 目录权限不足确保dataDir指定的目录存在且当前用户有读写权限否则 ZooKeeper 无法写入快照和日志文件导致启动失败。11. 总结本文详细介绍了 ZooKeeper 3.4.13 单机版的完整安装流程涵盖环境准备、下载解压、配置编写、服务启动、客户端测试以及开机自启配置。单机模式主要用于开发测试和学习场景生产环境中请务必部署奇数节点的集群模式以保证高可用。希望本文能帮助你快速搭建 ZooKeeper 环境为后续的分布式系统学习打下基础。