CentOS ZooKeeper 安装指南
简介

ZooKeeper 是一个开源的分布式应用程序协调服务,它提供了简单的原语,分布式应用程序可以基于这些原语实现一致性服务,在分布式系统中,ZooKeeper 用于配置管理、分布式锁、集群管理等场景,本文将详细介绍如何在 CentOS 系统上安装 ZooKeeper。
安装 ZooKeeper
环境准备
在开始安装之前,请确保您的 CentOS 系统满足以下要求:
- 操作系统:CentOS 7 或更高版本
- 硬件要求:至少 2GB 内存
- 网络要求:确保网络连接正常
安装 Java
ZooKeeper 需要Java环境,因此首先需要安装 Java,以下是在 CentOS 上安装 Java 的步骤:
# 安装 Java 开发包 sudo yum install java-1.8.0-openjdk-devel -y # 检查 Java 版本 java -version
下载 ZooKeeper
从 ZooKeeper 官方网站(https://zookeeper.apache.org/)下载最新版本的 ZooKeeper 包,以下是下载 ZooKeeper 3.5.7 版本的命令:

# 下载 ZooKeeper 包 wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.7/zookeeper-3.5.7.tar.gz # 解压 ZooKeeper 包 tar -zxvf zookeeper-3.5.7.tar.gz
配置 ZooKeeper
进入 ZooKeeper 解压后的目录,创建 conf 目录,并复制 zoo_sample.cfg 为 zoo.cfg:
cd zookeeper-3.5.7 mkdir conf cp conf/zoo_sample.cfg conf/zoo.cfg
编辑 zoo.cfg 文件,修改以下配置项:
# 数据目录 dataDir=/var/zookeeper/data # 日志目录 logDir=/var/zookeeper/logs # 服务器 ID,集群中唯一 server.id=1 # 监听地址和端口 clientPort=2181
创建数据目录和日志目录
sudo mkdir -p /var/zookeeper/data sudo mkdir -p /var/zookeeper/logs
赋予 ZooKeeper 目录权限
sudo chown -R zookeeper:zookeeper /var/zookeeper
创建 ZooKeeper 服务
创建一个名为 zookeeper.service 的服务文件:
sudo nano /etc/systemd/system/zookeeper.service
复制到文件中:

[Unit] Description=ZooKeeper After=network.target [Service] Type=forking User=zookeeper Group=zookeeper WorkingDirectory=/usr/local/zookeeper-3.5.7 ExecStart=/usr/local/zookeeper-3.5.7/bin/zkServer.sh start ExecStop=/usr/local/zookeeper-3.5.7/bin/zkServer.sh stop ExecReload=/bin/kill -s HUP $MAINPID Restart=on-failure [Install] WantedBy=multi-user.target
启用并启动 ZooKeeper 服务
sudo systemctl daemon-reload sudo systemctl enable zookeeper.service sudo systemctl start zookeeper.service
检查 ZooKeeper 服务状态
sudo systemctl status zookeeper.service
FAQs
问题:ZooKeeper 的
dataDir和logDir应该设置在哪里?解答:
dataDir应该设置在您希望存储 ZooKeeper 数据的地方,建议使用单独的磁盘或分区。logDir可以设置在dataDir相同的目录下,也可以单独设置在其他位置,确保这些目录对 ZooKeeper 用户有读写权限。问题:如何查看 ZooKeeper 的日志文件?
解答:ZooKeeper 的日志文件通常存储在
logDir指定的目录下,默认情况下,日志文件位于/var/zookeeper/logs,您可以使用以下命令查看日志文件:sudo tail -f /var/zookeeper/logs/zookeeper.log

