1.创建用户
useradd -m zookeeper
检查:
cat /etc/passwd
cat /etc/group
cd /home/zookeeper------------自行在home下建立了zookeeper目录
2.上传并解压zookeeper,修改配置文件、修改用户及用户组
1)tar zxf zookeeper-3.4.14.tar.gz
2)chown -R zookeeper:zookeeper zookeeper-3.4.14
3)mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
dataDir=/home/zookeeper/zookeeper-3.4.14/data
dataLogDir=/home/zookeeper/zookeeper-3.4.14/log
4)vim zkEnv.sh
if [ "x${ZOO_LOG_DIR}" = "x" ]
then
ZOO_LOG_DIR="${ZOOKEEPER_PREFIX}/log"
5./lib/systemd/system目录下zookeeper.service,内容如下
[Unit]
Description=zookeeper
[Service]
Type=forking
Environment=ZOO_LOG_DIR=/home/flink/zookeeper-3.4.14/bin
Environment=JAVA_HOME=/usr/local/java/
ExecStart=/home/zookeeper/zookeeper-3.4.14/bin/zkServer.sh start
ExecStop=/home/zookeeper/zookeeper-3.4.14/bin/zkServer.sh stop
PrivateTmp=true
User=zookeeper
Group=zookeeper
[Install]
WantedBy=multi-user.target
6.systemctl daemon-reload
systemctl start zookeeper
systemctl status zookeeper
systemctl enable zookeeper
systemd-analyze verify zookeeper.service–分析是否存在异常
journalctl -u zookeeper.service
journalctl -u zookeeper---------查看日志
7.reboot后可以发现可以自启动了
遇到问题
systemctl start zookeeper后发现没有报错,但status就发现没有在运行:
starting zookeeper...
Zookeeper jmx enabled by default
using config: /home/flink/zookeeper-3.4.14/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
Zookeeper JMX enabled by default
using config: /home/flink/zookeeper-3.4.14/bin/../conf/zoo.cfg
stopping zookeeper ... /home/flink/zookeeper-3.4.14/bin/zkServer.sh: line 182: kill (24939) - No such process
STOPPED
systemd[1]:Started zookeeper.
journalctl -u zookeeper.service----查看日志
...
Starting zookeeper ...
...
Starting zookeeper ... STARTED
...
Stopping zookeeper ...
STOPPED
发现先是成功启动了zookeeper但又自行调用了STOP,参考
https://blog.csdn.net/Peter_JJH/article/details/108446380,
zookeeper.service加入
RemainAfterExit=yes
再执行就成功了
> systemctl start zookeeper
但后面还是出现了报错
查看zookeeper.out,发现
nohup: failed to run command `java': No such file or directory
发现其实是找到JAVA_HOME导致,加入下面即可
> which java
/usr/local/java/bin/java
则只需要在zookeeper.service加入
Environment=JAVA_HOME=/usr/local/java
启动报错:./zookeeper.out: Permission denied
从上面图片看出使用flink用户在根目录进行启动,尝试在当前目录新建zookeeper.out发现没有权限 导致
解决
- 移到用户权限目录下执行;
- 修改zkEnv.sh中ZOO_LOG_DIR="${ZOOKEEPER_PREFIX}/log"
- 修改zookeeper.service
Environment=ZOO_LOG_DIR=/home/flink/zookeeper-3.4.14/bin