以下是在Ubuntu下部署Zookeeper集群的步骤:
安装Java环境
sudo apt update
sudo apt install openjdk-11-jdk # 推荐JDK 11
java -version # 验证安装
下载并解压Zookeeper
wget https://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
tar -xzvf apache-zookeeper-3.7.0-bin.tar.gz -C /opt
配置每个节点
mkdir -p /var/lib/zookeeper/node{1,2,3} # 假设3个节点
mkdir -p /var/log/zookeeper/node{1,2,3}
cp /opt/apache-zookeeper-3.7.0-bin/conf/zoo_sample.cfg /etc/zookeeper/conf/node1.cfg
nano /etc/zookeeper/conf/node1.cfg
# 修改以下内容(示例为3节点):
tickTime=2000
dataDir=/var/lib/zookeeper/node1
clientPort=2181
initLimit=5
syncLimit=2
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
重复上述步骤,修改node2.cfg、node3.cfg的dataDir和clientPort,并调整server.X中的IP和端口。创建myid文件
在每个节点的dataDir目录下创建myid文件,内容为对应节点ID(与server.X中的数字一致):
echo "1" > /var/lib/zookeeper/node1/myid # node1
echo "2" > /var/lib/zookeeper/node2/myid # node2
echo "3" > /var/lib/zookeeper/node3/myid # node3
启动Zookeeper服务
/opt/apache-zookeeper-3.7.0-bin/bin/zkServer.sh start /etc/zookeeper/conf/node1.cfg # node1
/opt/apache-zookeeper-3.7.0-bin/bin/zkServer.sh start /etc/zookeeper/conf/node2.cfg # node2
/opt/apache-zookeeper-3.7.0-bin/bin/zkServer.sh start /etc/zookeeper/conf/node3.cfg # node3
验证集群状态
在任意节点执行:
/opt/apache-zookeeper-3.7.0-bin/bin/zkServer.sh status
应看到Mode: leader或Mode: follower,表示集群正常。
配置防火墙
允许Zookeeper通信端口(默认2181、2888、3888):
sudo ufw allow 2181/tcp
sudo ufw allow 2888/tcp
sudo ufw allow 3888/tcp
注意事项:
/etc/hosts中配置主机名与IP映射。zkCli.sh工具连接集群验证:./zkCli.sh -server node1:2181。