手动启动方式
一般通过指令手动来启动zookeeper的方法是,先进入到zookeeper的安装目录下的bin目录,然后执行启动指令。
bash
cd /usr/local/zookeeper/zookeeper-3.8.4/bin/
zkServer.sh start
停止指令
bash
zkServer.sh stop
查看状态
bash
zkServer.sh status
上面的方式是通过手动启动,关闭的。如果系统重启了,zookeeper服务是不会自动启动的。
这里是通过创建系统服务,然后把这个系统服务设置开机自启,从而达到想要的目的。
下面开始教你怎么把zookeeper创建为系统服务。
系统服务启动方式
1、创建一个服务单元文件 /etc/systemd/system/zookeeper.service
bash
#先进入到此目录下
cd /etc/systemd/system/
#创建一个zookeeper.service服务单元文件
vim zookeeper.service
2、zookeeper.service服务单元文件内容
bash
[Unit]
Description=Apache Zookeeper Server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
User=root
Group=root
ExecStart=/usr/local/zookeeper/zookeeper-3.8.4/bin/zkServer.sh start
ExecStop=/usr/local/zookeeper/zookeeper-3.8.4/bin/zkServer.sh stop
ExecReload=/usr/local/zookeeper/zookeeper-3.8.4/bin/zkServer.sh restart
Restart=on-failure
[Install]
WantedBy=multi-user.target
ExecStart后面跟的是zookeeper的启动指令,关于文件路径替换为自己的就行。
ExecStop后面跟的是zookeeper的停止指令,关于文件路径替换为自己的就行。
ExecReload后面跟的是zookeeper的重启指令,关于文件路径替换为自己的就行。
设置权限
bash
chmod 777 zookeeper.service
重新加载systemctl管理器配置,使新的服务单元生效
bash
systemctl daemon-reload
systemctl 相关指令
bash
# 设置服务开机自启
systemctl enable zookeeper.service
# 取消开机自启
systemctl disable zookeeper.service
# 启动服务
systemctl start zookeeper
# 停止服务
systemctl stop zookeeper
# 重启服务
systemctl restart zookeeper
# 查看服务状态
systemctl status zookeeper
# 查看服务是否开机自启
systemctl is-enabled zookeeper
遇到的问题
当执行 systemctl start zookeeper 启动服务时,没有启动成功。
需要在zkEnv.sh文件中添加JDK的JAVA_HOME路径。
bash
cd /usr/local/zookeeper/zookeeper-3.8.4/bin/
vim zkEnv.sh
至此,重新启动,启动成功。