1. 准备网络基础信息
配置前需明确以下网络参数:静态IP地址(如192.168.1.100)、子网掩码(如255.255.255.0)、默认网关(如192.168.1.1)、DNS服务器地址(如8.8.8.8, 8.8.4.4);同时通过ip link show或nmcli device命令获取Ubuntu系统的网卡名称(如enp0s3、ens33)。
2. 配置Ubuntu静态IP地址
Ubuntu 20.04及以上版本推荐使用Netplan配置静态IP(路径:/etc/netplan/01-netcfg.yaml),示例如下:
network:
version: 2
renderer: networkd
ethernets:
enp0s3: # 替换为你的网卡名称
dhcp4: no
addresses: ["192.168.1.100/24"] # 静态IP及子网掩码
gateway4: 192.168.1.1 # 默认网关
nameservers:
addresses: ["8.8.8.8", "8.8.4.4"] # DNS服务器
应用配置:sudo netplan apply;验证IP是否生效:ip addr show enp0s3。
若使用NetworkManager(图形界面友好),可通过“设置→网络→有线/无线连接→编辑→IPv4→手动”输入上述信息并保存;旧版Ubuntu(如18.04)则编辑/etc/network/interfaces文件,配置示例如下:
auto enp0s3
iface enp0s3 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
修改后重启网络服务:sudo systemctl restart networking。
3. 配置Zookeeper网络参数(zoo.cfg)
编辑Zookeeper配置文件(路径:/etc/zookeeper/conf/zoo.cfg或/opt/zookeeper/conf/zoo.cfg),关键参数如下:
tickTime=2000 # 基本时间单位(毫秒)
dataDir=/var/lib/zookeeper # 数据存储目录(需提前创建并赋予权限:sudo mkdir -p /var/lib/zookeeper && sudo chown -R nobody:nogroup /var/lib/zookeeper)
clientPort=2181 # 客户端连接端口(默认2181,需开放防火墙)
initLimit=5 # Follower连接Leader的最大超时时间(tick数)
syncLimit=2 # Follower与Leader同步的最大超时时间(tick数)
server.1=192.168.1.100:2888:3888 # 集群节点1(IP:Leader选举端口:数据同步端口)
server.2=192.168.1.101:2888:3888 # 集群节点2(需替换为实际IP)
server.3=192.168.1.102:2888:3888 # 集群节点3(需替换为实际IP)
注:server.X中的X需与后续myid文件中的ID一致。
4. 设置集群节点标识(myid文件)
在每个Zookeeper节点的dataDir目录(如/var/lib/zookeeper)下创建myid文件,内容为对应server.X中的X值。例如:
echo "1" | sudo tee /var/lib/zookeeper/myidecho "2" | sudo tee /var/lib/zookeeper/myidecho "3" | sudo tee /var/lib/zookeeper/myid。5. 配置防火墙允许Zookeeper通信
若系统启用ufw防火墙,需开放Zookeeper相关端口(客户端端口2181、集群通信端口2888/3888):
sudo ufw allow 2181/tcp # 客户端连接
sudo ufw allow 2888/tcp # Leader选举
sudo ufw allow 3888/tcp # 数据同步
sudo ufw reload # 重新加载防火墙规则
验证端口是否开放:sudo ufw status。
6. 验证网络连通性
ip addr show enp0s3ping 192.168.1.101zkCli.sh工具连接Zookeeper服务端(如/opt/zookeeper/bin/zkCli.sh -server 192.168.1.100:2181),执行ls /命令查看根节点是否存在。7. 可选:配置主机名与IP映射
若使用主机名而非IP连接Zookeeper,需在每台节点的/etc/hosts文件中添加映射(避免DNS解析问题):
192.168.1.100 zoo1
192.168.1.101 zoo2
192.168.1.102 zoo3
修改后保存即可。