以下是在CentOS上處理Zookeeper網絡設置問題的步驟:
ip a
或 ifconfig
查看網卡名稱(如 ens33
)。systemctl stop firewalld && systemctl disable firewalld
sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
/etc/sysconfig/network-scripts/ifcfg-ens33
,設置 BOOTPROTO=static
、IPADDR
、GATEWAY
等參數,重啟網絡 systemctl restart network
。BOOTPROTO=dhcp
,重啟網絡。zoo.cfg
文件
clientPort=2181
和 dataDir
(數據目錄)。server.x=IP:2888:3888
(x
為節點ID),并在 dataDir
下創建 myid
文件寫入節點ID。clientPort
配置正確,或通過 zookeeper-server-start.sh
指定 ZOOKEEPER_OPTS="-Dzookeeper.bind_host=0.0.0.0"
。firewall-cmd --permanent --zone=public --add-port=2181/tcp # 客戶端端口
firewall-cmd --permanent --zone=public --add-port=2888/tcp # 集群通信端口
firewall-cmd --permanent --zone=public --add-port=3888/tcp # 同步端口
firewall-cmd --reload
ping
測試節點間互通。telnet
或 nc
測試端口是否可達:telnet <Zookeeper_IP> 2181
nc -vz <Zookeeper_IP> 2181
zkServer.sh status
查看節點狀態,確認是否正常加入集群。IPADDR
并重啟網絡。dataDir
和 logDir
權限正確(屬主為 zookeeper
用戶,權限 750
)。myid
文件與 zoo.cfg
中的 server.x
ID 一致。zoo.cfg
中的 advertisedHostname
一致。參考來源: