在 CentOS 上配置 Zookeeper 的网络设置需要以下步骤:
1. 确认网络端口
Zookeeper 默认使用以下端口:
- 2181:客户端连接端口(
clientPort
) - 2888:集群节点间通信端口(Leader 选举后的数据传输)
- 3888:集群 Leader 选举端口
确保这些端口在防火墙中开放(单机或集群环境均需配置)。
2. 配置防火墙(FirewallD)
如果使用 firewalld
,执行以下命令开放端口:
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
3. 修改 Zookeeper 配置文件
配置文件通常位于 conf/zoo.cfg
,按需调整以下参数:
# 客户端连接端口(默认 2181)
clientPort=2181
# 绑定所有网络接口(默认绑定 0.0.0.0,无需修改)
# 如需限制访问,可指定 IP:
# clientPortAddress=192.168.1.100
# 集群配置(如果是单机可跳过)
server.1=node1_ip:2888:3888
server.2=node2_ip:2888:3888
server.3=node3_ip:2888:3888
4. 处理 SELinux(可选)
如果 SELinux 处于 Enforcing
模式,可能导致端口绑定失败。临时解决方案:
sudo setenforce 0 # 临时关闭 SELinux
永久关闭需修改 /etc/selinux/config
为 SELINUX=disabled
(需重启)。
5. 验证网络连通性
- 检查端口监听:
netstat -tuln | grep -E '2181|2888|3888'
- 测试客户端连接:
telnet 127.0.0.1 2181 # 或使用 Zookeeper 客户端工具
6. 集群配置注意事项
- 确保所有节点的
/etc/hosts
包含集群 IP 和主机名映射。 - 每个节点的
myid
文件(位于dataDir
目录)必须且与zoo.cfg
中的server.x
匹配。
7. 启动 Zookeeper
# 进入 Zookeeper 安装目录
bin/zkServer.sh start
常见问题排查
- 连接超时:检查防火墙/SELinux、IP 绑定是否正确。
- 集群选举失败:确认
server.x
配置一致,端口开放,网络延迟低。 - 日志分析:查看
zookeeper.out
或日志目录下的错误信息。
通过以上步骤,您可以在 CentOS 上完成 Zookeeper 的网络配置。根据实际环境调整 IP 和端口即可。