ZooKeeper依赖Java运行环境,推荐安装OpenJDK 8或更高版本。执行以下命令安装:
sudo yum install java-1.8.0-openjdk-devel
安装完成后,通过java -version验证是否安装成功。
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz/usr/local/):tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz -C /usr/local/mv /usr/local/apache-zookeeper-3.8.0-bin /usr/local/zookeeper进入ZooKeeper目录,复制默认配置文件并重命名为zoo.cfg(核心配置文件):
cd /usr/local/zookeeper/conf && cp zoo_sample.cfg zoo.cfg
编辑zoo.cfg,修改以下关键参数:
/var/lib/zookeeper);tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=10
syncLimit=5
若搭建集群,需在zoo.cfg中添加server.N配置(N为节点编号),格式为:
server.X=IP地址:2888:3888
示例(3节点集群):
server.1=192.168.0.11:2888:3888
server.2=192.168.0.12:2888:3888
server.3=192.168.0.13:2888:3888
说明:2888端口用于Leader与Follower通信,3888端口用于选举Leader。
在每个节点的dataDir目录下创建myid文件,内容为该节点的编号(与server.N中的N一致)。例如:
echo "1" > /var/lib/zookeeper/myidecho "2" > /var/lib/zookeeper/myidecho "3" > /var/lib/zookeeper/myid创建systemd服务文件/etc/systemd/system/zookeeper.service,内容如下(根据实际情况调整路径和用户):
[Unit]
Description=Apache ZooKeeper
After=network.target
[Service]
Type=forking
User=zookeeper
Group=zookeeper
Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.202.b08-2.el7.x86_64
ExecStart=/usr/local/zookeeper/bin/zkServer.sh start
ExecStop=/usr/local/zookeeper/bin/zkServer.sh stop
PIDFile=/var/lib/zookeeper/zookeeper.pid
Restart=always
PrivateTmp=true
[Install]
WantedBy=multi-user.target
说明:
User和Group建议使用专用用户(如zookeeper),提升安全性;PIDFile需指向ZooKeeper的PID文件路径(通常在dataDir下)。保存后,执行以下命令启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable zookeeper
sudo systemctl start zookeeper
sudo systemctl status zookeeper/usr/local/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181Welcome to ZooKeeper提示符。若系统启用了防火墙,需开放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