温馨提示×

linux zookeeper怎样配置

小樊
38
2026-10-07 09:06:06
栏目: 智能运维

下面给你一份Linux 下 ZooKeeper 配置与启动的简明实战指南,适用于 ZooKeeper 3.x(如 3.7 / 3.8 / 3.9),单机 & 集群都覆盖。


一、环境准备

1. 安装 JDK

ZooKeeper 依赖 Java:

java -version

若未安装(以 CentOS 为例):

yum install -y java-1.8.0-openjdk

推荐 JDK 8 或 11。


二、下载与安装 ZooKeeper

cd /opt
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.8.2/apache-zookeeper-3.8.2-bin.tar.gz
tar -zxvf apache-zookeeper-3.8.2-bin.tar.gz
mv apache-zookeeper-3.8.2-bin zookeeper

三、单机模式配置(最常用)

1. 创建数据目录

mkdir -p /data/zookeeper

2. 配置文件

cd /opt/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg

最小配置示例:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper
clientPort=2181

3. 启动 ZooKeeper

/opt/zookeeper/bin/zkServer.sh start

4. 验证

/opt/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181

看到:

WatchedEvent state:SyncConnected

说明成功。


四、集群模式配置(3 节点示例)

假设 3 台机器:

192.168.1.10
192.168.1.11
192.168.1.12

1. 每台机器配置 zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper
clientPort=2181

server.1=192.168.1.10:2888:3888
server.2=192.168.1.11:2888:3888
server.3=192.168.1.12:2888:3888

2. 创建 myid 文件

每台机器:

# 192.168.1.10
echo 1 > /data/zookeeper/myid

# 192.168.1.11
echo 2 > /data/zookeeper/myid

# 192.168.1.12
echo 3 > /data/zookeeper/myid

3. 启动所有节点

/opt/zookeeper/bin/zkServer.sh start

4. 查看状态

/opt/zookeeper/bin/zkServer.sh status

输出示例:

Mode: leader
Mode: follower

五、常用配置参数说明

参数 说明
tickTime 基础时间单位(ms)
initLimit follower 初始化连接超时
syncLimit 同步超时
dataDir 数据目录
clientPort 客户端端口
maxClientCnxns 单 IP 最大连接数

示例:

maxClientCnxns=60

六、开机自启(systemd)

1. 创建服务文件

vi /etc/systemd/system/zookeeper.service
[Unit]
Description=ZooKeeper
After=network.target

[Service]
Type=forking
ExecStart=/opt/zookeeper/bin/zkServer.sh start
ExecStop=/opt/zookeeper/bin/zkServer.sh stop
User=root

[Install]
WantedBy=multi-user.target

2. 启用

systemctl daemon-reload
systemctl enable zookeeper
systemctl start zookeeper

七、常见问题

1. 启动失败

查看日志:

/opt/zookeeper/bin/zookeeper.out

2. 端口被占用

netstat -tunlp | grep 2181

3. 防火墙

firewall-cmd --add-port=2181/tcp --permanent
firewall-cmd --reload

如果你需要:

  • Docker 部署
  • Kafka + ZooKeeper
  • 生产环境调优参数

可以直接告诉我你的使用场景。

0 踩