温馨提示×

centos zookeeper配置指南

小樊
43
2025-11-08 06:21:19
栏目: 智能运维

CentOS下ZooKeeper配置指南

一、环境准备

1. 安装Java环境

ZooKeeper依赖Java运行环境,推荐安装OpenJDK 8或更高版本。执行以下命令安装:
sudo yum install java-1.8.0-openjdk-devel
安装完成后,通过java -version验证是否安装成功。

二、下载并解压ZooKeeper

  1. 从Apache官方下载ZooKeeper发行包(以3.8.0为例):
    wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz
  2. 解压至指定目录(如/usr/local/):
    tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz -C /usr/local/
  3. 为方便管理,可重命名解压后的目录:
    mv /usr/local/apache-zookeeper-3.8.0-bin /usr/local/zookeeper

三、配置ZooKeeper

1. 修改配置文件

进入ZooKeeper目录,复制默认配置文件并重命名为zoo.cfg(核心配置文件):
cd /usr/local/zookeeper/conf && cp zoo_sample.cfg zoo.cfg
编辑zoo.cfg,修改以下关键参数:

  • dataDir:数据存储目录(需提前创建,如/var/lib/zookeeper);
  • clientPort:客户端连接端口(默认2181);
  • tickTime:基础时间单位(毫秒,默认2000);
  • initLimit:初始连接超时时间(单位tick,默认10);
  • syncLimit:Leader与Follower同步超时时间(单位tick,默认5)。
    示例配置:
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=10
syncLimit=5

2. 配置集群节点(可选)

若搭建集群,需在zoo.cfg中添加server.N配置(N为节点编号),格式为:
server.X=IP地址:2888:3888
示例(3节点集群):

server.1=192.168.0.11:2888:3888
server.2=192.168.0.12:2888:3888
server.3=192.168.0.13:2888:3888

说明:2888端口用于Leader与Follower通信,3888端口用于选举Leader。

四、创建myid文件

在每个节点的dataDir目录下创建myid文件,内容为该节点的编号(与server.N中的N一致)。例如:

  • 节点1:echo "1" > /var/lib/zookeeper/myid
  • 节点2:echo "2" > /var/lib/zookeeper/myid
  • 节点3:echo "3" > /var/lib/zookeeper/myid

五、设置开机启动

创建systemd服务文件/etc/systemd/system/zookeeper.service,内容如下(根据实际情况调整路径和用户):

[Unit]
Description=Apache ZooKeeper
After=network.target

[Service]
Type=forking
User=zookeeper
Group=zookeeper
Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.202.b08-2.el7.x86_64
ExecStart=/usr/local/zookeeper/bin/zkServer.sh start
ExecStop=/usr/local/zookeeper/bin/zkServer.sh stop
PIDFile=/var/lib/zookeeper/zookeeper.pid
Restart=always
PrivateTmp=true

[Install]
WantedBy=multi-user.target

说明

  • UserGroup建议使用专用用户(如zookeeper),提升安全性;
  • PIDFile需指向ZooKeeper的PID文件路径(通常在dataDir下)。

保存后,执行以下命令启用并启动服务:

sudo systemctl daemon-reload
sudo systemctl enable zookeeper
sudo systemctl start zookeeper

六、验证安装

  1. 检查ZooKeeper服务状态:
    sudo systemctl status zookeeper
    若显示“active (running)”,则服务启动成功。
  2. 使用ZooKeeper客户端连接:
    /usr/local/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181
    连接成功后会显示Welcome to ZooKeeper提示符。

七、可选配置(防火墙)

若系统启用了防火墙,需开放ZooKeeper相关端口(默认2181、2888、3888):

sudo firewall-cmd --zone=public --add-port=2181/tcp --permanent
sudo firewall-cmd --zone=public --add-port=2888/tcp --permanent
sudo firewall-cmd --zone=public --add-port=3888/tcp --permanent
sudo firewall-cmd --reload

0