在CentOS上配置Zookeeper时,网络配置是一个关键步骤。以下是详细的配置步骤和注意事项:
编辑网络接口配置文件:
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
确保配置文件包含以下内容:
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
ONBOOT=yes
重启网络服务以应用配置:
sudo systemctl restart network
关闭防火墙和SELinux:
临时关闭防火墙和SELinux:
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo setenforce 0
永久关闭SELinux:
sudo vi /etc/selinux/config
将SELINUX=enforcing
改为SELINUX=disabled
,然后重启服务器。
安装Java环境:
Zookeeper是基于Java开发的,因此需要安装Java环境:
sudo yum install java-1.8.0-openjdk-devel
下载并解压Zookeeper:
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
tar -zxvf zookeeper-3.4.14.tar.gz -C /usr/local/
配置Zookeeper:
编辑zoo.cfg
文件:
sudo vi /usr/local/zookeeper-3.4.14/conf/zoo.cfg
主要需要修改的配置项包括:
dataDir
:数据目录路径,例如 /var/lib/zookeeper
clientPort
:客户端连接端口,默认2181
server.x
:集群节点的IP地址和端口号,例如:
server.1 192.168.1.100:2888:3888
server.2 192.168.1.101:2888:3888
server.3 192.168.1.102:2888:3888
创建数据目录:
sudo mkdir -p /var/lib/zookeeper
设置开机启动:
创建并编辑 zookeeper.service
文件:
sudo vi /etc/systemd/system/zookeeper.service
添加以下内容:
[Unit]
Description=Zookeeper
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/zookeeper-3.4.14/bin/zkServer.sh start
ExecStop=/usr/local/zookeeper-3.4.14/bin/zkServer.sh stop
PrivateTmp=true
Environment=JAVA_HOME=/usr/local/java/jdk1.8.0_202
User=root
Group=root
PIDFile=/usr/local/zookeeper-3.4.14/data/zookeeper.pid
Restart=always
[Install]
WantedBy=multi-user.target
重新加载systemd配置并启动Zookeeper服务:
sudo systemctl daemon-reload
sudo systemctl start zookeeper
sudo systemctl enable zookeeper
启动Zookeeper服务并验证其状态:
sudo systemctl start zookeeper
sudo systemctl status zookeeper
使用telnet或其他工具验证Zookeeper是否正在监听指定的端口:
telnet localhost 2181