以下是在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
。