阅读量:99
1. 准备工作
搭建Zookeeper集群前需完成以下基础准备:
- 服务器要求:至少3台Linux服务器(建议奇数台,如3/5台),确保服务器之间网络互通;
- Java环境:Zookeeper依赖Java运行环境,需提前安装JDK 1.8及以上版本,并配置
JAVA_HOME环境变量; - 安装包下载:从Apache官网下载Zookeeper稳定版本(如3.7.0),并上传至所有服务器的指定目录(如
/opt)。
2. 解压与目录配置
- 解压Zookeeper安装包:使用
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. 启动集群
- 在每台服务器上进入Zookeeper的
bin目录,执行./zkServer.sh start命令启动Zookeeper服务; - 启动后可使用
jps命令查看进程(若出现QuorumPeerMain,则表示启动成功)。
6. 验证集群状态
- 在任意一台服务器上执行
./zkServer.sh status命令,查看节点角色(Mode: leader表示Leader节点,Mode: follower表示Follower节点); - 若集群启动节点数超过半数(如3节点集群需至少2节点启动),Leader会自动选举产生,集群进入正常工作状态。
7. 防火墙配置(可选但推荐)
- 开放Zookeeper使用的端口(默认2181、2888、3888),避免因防火墙拦截导致节点间通信失败:
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