以下是 Zookeeper 3.8 在三台机器(IP 分别为 192.168.0.200、192.168.0.201、192.168.0.202)上部署集群模式的详细指导。操作系统为 RedHat 8.2。
登录到每台机器。
下载 Zookeeper 3.8 并解压:
wget https://downloads.apache.org/zookeeper/stable/apache-zookeeper-3.8.0-bin.tar.gz
tar -xzf apache-zookeeper-3.8.0-bin.tar.gz
mv apache-zookeeper-3.8.0-bin /opt/zookeeper
在每台机器上,进入 Zookeeper 目录并复制示例配置文件:
cd /opt/zookeeper
cp conf/zoo_sample.cfg conf/zoo.cfg
编辑 conf/zoo.cfg
文件,确保内容如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/lib/zookeeper
dataLogDir=/var/log/zookeeper
clientPort=2181
server.1=192.168.0.200:2888:3888
server.2=192.168.0.201:2888:3888
server.3=192.168.0.202:2888:3888
4lw.commands.whitelist=*
在每台机器上,创建数据目录和日志目录,并设置权限:
mkdir -p /var/lib/zookeeper
mkdir -p /var/log/zookeeper
在每台机器的 dataDir
目录中创建 myid
文件。根据每台机器的 IP 地址,写入对应的 ID:
在 192.168.0.200
上:
echo "1" > /var/lib/zookeeper/myid
在 192.168.0.201
上:
echo "2" > /var/lib/zookeeper/myid
在 192.168.0.202
上:
echo "3" > /var/lib/zookeeper/myid
在每台机器上启动 Zookeeper 服务:
cd /opt/zookeeper
bin/zkServer.sh start
验证 Zookeeper 服务状态:
bin/zkServer.sh status
在每台机器上,确保防火墙允许 Zookeeper 所使用的端口(2181、2888、3888)进行通信:
sudo firewall-cmd --permanent --add-port=2181/tcp
sudo firewall-cmd --permanent --add-port=2888/tcp
sudo firewall-cmd --permanent --add-port=3888/tcp
sudo firewall-cmd --reload
使用 Zookeeper 客户端工具连接到集群并验证集群状态。在任何一台机器上执行以下命令:
cd /opt/zookeeper
bin/zkCli.sh -server 192.168.0.200:2181
在 Zookeeper CLI 中,运行以下命令查看集群状态:
stat
您应该能看到 Leader 和 Follower 的信息,表明集群已经成功启动并运行。
以下是完整的 zoo.cfg
配置文件示例:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/lib/zookeeper
dataLogDir=/var/log/zookeeper
clientPort=2181
server.1=192.168.0.200:2888:3888
server.2=192.168.0.201:2888:3888
server.3=192.168.0.202:2888:3888
4lw.commands.whitelist=*
日志检查:
dataLogDir
目录中,例如 /var/log/zookeeper/zookeeper.out
。健康检查:
配置管理:
通过上述步骤,您可以成功部署并配置一个 Zookeeper 集群,以便为分布式应用提供可靠的协调服务。下·