ZooKeeper设置开机启动
1 在init.d目录下新建脚本文件
进入到/etc/rc.d/init.d目录下,命令是:
cd /etc/rc.d/init.d
新建一个名为zookeeper的文件,命令是:
touch zookeeper
如图:
1.1文件内容的第一种方案(推荐)
使用vim命令修改文件内容,文件内容的写法有很多,除了上面的第一种方案,用下面的这种也可以:
1.2文件内容的第二种方案
使用vim命令修改文件内容,文件内容是:
#!/bin/bash
#chkconfig: 2345 10 90
#description: service zookeeper
export JAVA_HOME=/usr/java/jdk1.7.0_45
export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.4.6
case "$1" in
start) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh start;;
start-foreground) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh start-foreground;;
stop) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh stop;;
status) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh status;;
restart) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh restart;;
upgrade)su root ${ZOOKEEPER_HOME}/bin/zkServer.sh upgrade;;
print-cmd)su root ${ZOOKEEPER_HOME}/bin/zkServer.sh print-cmd;;
*) echo "requirestart|start-foreground|stop|status|restart|print-cmd";;
esac
1.3 其他说明
注意1:新建文件的命令是touch,编辑文件的命令用vi和vim都行。如果不会使用vi和vim命令,直接在本地把文件编辑好,然后用远程工具上载上去都行,不过需要注意的是如果本地用的windows系统,需要把文件转为UNIX格式。转换工具有很多,例如使用Notepad++
如图:
注意2:两个方案中的文件头部#注释的部分不能少,而且文件中诸如JDK路径,zookeeper路径都需要修改为你自己的。
2.1 执行一系列命令
为新建的/etc/rc.d/init.d/zookeeper文件添加可执行权限,命令是:
chmod +x /etc/rc.d/init.d/zookeeper
把zookeeper这个脚本添加到开机启动项里面,命令是:
chkconfig --add zookeeper
如图:
如果想看看是否添加成功,命令是:
chkconfig --list
如图:
2.2执行测试看是否开机启动
使用命令重启机器,命令是:
reboot
方法一
查看zookeeper的状态
重启机器,然后不手动启动zookeeper的情况下,执行命令:
service zookeeper status
如图:
方法二
查看2181端口是否启用,执行命令:
lsof -i:2181
如图:
方法三
查看网络状态,执行命令:
netstat -lntup
如图:
报错及解决
service zookeeper does not support chkconfig
执行chkconfig --add zookeeper报错:
servicezookeeper does not support chkconfig
问题原因和解决:
/etc/rc.d/init.d/ zookeeper脚本中头部没有添加下面这几句话(description可以随便写):
#!/bin/bash
#chkconfig:2345 10 90
#description:service zookeeper
Error contacting service. It is probably not running
执行service zookeeper status报错:
JMX enabled by default
Usingconfig: /opt/zookeeper/zookeeper-3.4.10/bin/../conf/zoo.cfg
Errorcontacting service. It is probably not running.
问题原因和解决:
/etc/rc.d/init.d/ zookeeper没有配置对,请看3.1.1和3.1.2的配置,里面必须要有export JAVA_HOME这一句话,后面的路径是你自己的JDK安装路径。
至于export ZOO_LOG_DIR=/opt/zookeeper/log这一句的话可有可无,意思是指定zookeeper的启动日志存放目录,如果该目录不存在,你必须手动创建一个。