1. 准备工作
搭建Zookeeper集群前需完成以下基础准备:
JAVA_HOME环境变量;/opt)。2. 解压与目录配置
tar -zxvf apache-zookeeper-x.x.x-bin.tar.gz -C /opt/命令解压至目标目录(如/opt/zookeeper);dataDir,如/var/lib/zookeeper/data)和日志目录(dataLogDir,如/var/log/zookeeper),用于存储集群数据和运行日志。3. 配置文件修改
conf/zoo_sample.cfg复制为conf/zoo.cfg(核心配置文件);zoo.cfg,添加或调整以下内容:
tickTime=2000:基本时间单位(毫秒),用于心跳和超时计算;initLimit=5:Follower与Leader初始化同步的最长时间(tickTime的倍数,如5×2000ms=10s);syncLimit=2:Leader与Follower同步消息的最长时间(tickTime的倍数,如2×2000ms=4s);dataDir=/var/lib/zookeeper/data:数据目录路径(需与步骤2中创建的目录一致);clientPort=2181:客户端连接集群的端口(默认2181,集群中所有节点需一致);server.X=IP:2888:3888:集群节点列表(X为节点ID,如1、2、3;IP为节点主机名或IP;2888为节点间通信端口,3888为Leader选举端口)。4. 创建myid文件
dataDir目录下创建myid文件(如/var/lib/zookeeper/data/myid),内容为该节点的server.X中的X值(如节点1写1,节点2写2,节点3写3);myid值必须唯一且与zoo.cfg中的server.X对应,是集群识别节点身份的关键。5. 启动集群
bin目录,执行./zkServer.sh start命令启动Zookeeper服务;jps命令查看进程(若出现QuorumPeerMain,则表示启动成功)。6. 验证集群状态
./zkServer.sh status命令,查看节点角色(Mode: leader表示Leader节点,Mode: follower表示Follower节点);7. 防火墙配置(可选但推荐)
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