#添加环境变量
tee /etc/profile.d/zkENV.sh <<-'EOF'
export ZOOKEEPER_HOME=/usr/local/apache-zookeeper-3.8.4-bin
export PATH=$PATH:$ZOOKEEPER_HOME/bin
EOF
source /etc/profile
解压安装包到指定目录
cd /data/setup
tar xvf apache-zookeeper-3.8.4-bin.tar.gz -C /usr/local/
环境变量
tee /usr/local/apache-zookeeper-3.8.4-bin/conf/zookeeper-env.sh <<-'EOF'
export ZOO_LOG_DIR="/var/log/zookeeper/"
EOF
生成配置
tee /usr/local/apache-zookeeper-3.8.4-bin/conf/zoo.cfg <<-'EOF'
4lw.commands.whitelist=stat,ruok,conf,mntr
tickTime=2000
dataDir=/data/zookeeper/
clientPort=2181
initLimit=5
syncLimit=2
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888
EOF
创建myid文件,注意要在每台机器创建不同的myid文件
mkdir -p /data/zookeeper/
echo "1" > /data/zookeeper/myid
echo "2" > /data/zookeeper/myid
echo "3" > /data/zookeeper/myid
开机启动
tee /etc/systemd/system/zookeeper.service <<-'EOF'
[Unit]
Description=Apache Zookeeper Service
Documentation=https://zookeeper.apache.org/
After=network.target
[Service]
Type=forking
User=root
Group=root
ExecStart=/usr/bin/bash -lc "/usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh start"
ExecStop=/usr/bin/bash -lc "/usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh stop"
ExecReload=/usr/bin/bash -lc "/usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh restart"
PIDFile=/data/zookeeper/zookeeper_server.pid
StandardOutput=journal
StandardError=journal
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable zookeeper
systemctl stop zookeeper
systemctl start zookeeper
测试状态是否正常
/usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh status
#或者
echo stat | nc localhost 2181