在 Ubuntu 上解决 Zookeeper 的依赖项
核心依赖与版本建议
java -version 验证版本即可。安装与验证 Java
sudo apt update && sudo apt install -y openjdk-11-jdksudo apt update && sudo apt install -y openjdk-8-jdkjava -version(应显示 1.8 或 11.x 的版本信息)。安装 Zookeeper 二进制发行包
wget https://downloads.apache.org/zookeeper/zookeeper-3.9.1/apache-zookeeper-3.9.1-bin.tar.gz
sudo tar -xzvf apache-zookeeper-3.9.1-bin.tar.gz -C /opt
sudo ln -sfn /opt/apache-zookeeper-3.9.1-bin /opt/zookeeper # 可选:创建软链便于升级
zkServer.sh、zkCli.sh):echo 'export ZOOKEEPER_HOME=/opt/zookeeper' | sudo tee -a /etc/profile.d/zookeeper.sh
echo 'export PATH=$PATH:$ZOOKEEPER_HOME/bin' | sudo tee -a /etc/profile.d/zookeeper.sh
source /etc/profile.d/zookeeper.sh
sudo mkdir -p /var/lib/zookeeper/data /var/log/zookeeper
cp $ZOOKEEPER_HOME/conf/zoo_sample.cfg $ZOOKEEPER_HOME/conf/zoo.cfg
# 编辑 zoo.cfg,至少设置:
# tickTime=2000
# dataDir=/var/lib/zookeeper/data
# clientPort=2181
$ZOOKEEPER_HOME/bin/zkServer.sh start
$ZOOKEEPER_HOME/bin/zkServer.sh status
ss -lntp | grep 2181 # 或 netstat -nap | grep 2181
看到 2181 端口监听且状态为 leader/follower 即表示依赖已满足并运行正常。常见依赖与故障排查
sudo apt install -y openjdk-11-jdk(或 openjdk-8-jdk),再 java -version 确认。ss -lntp | grep 2181 查找占用进程并释放,或调整 clientPort。sudo ufw allow 2181,2888,3888/tcp)。可选的系统服务封装
sudo tee /etc/systemd/system/zookeeper.service >/dev/null <<'EOF'
[Unit]
Description=Apache Zookeeper
After=network.target
[Service]
Type=forking
User=zookeeper
Group=zookeeper
ExecStart=/opt/zookeeper/bin/zkServer.sh start
ExecStop=/opt/zookeeper/bin/zkServer.sh stop
ExecReload=/opt/zookeeper/bin/zkServer.sh restart
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now zookeeper
sudo systemctl status zookeeper
注意:运行用户、目录权限与 zoo.cfg 中的 dataDir 需保持一致。