1. 程式人生 > 其它 >ZooKeeper設定開機啟動

ZooKeeper設定開機啟動

1 在init.d目錄下新建指令碼檔案

進入到/etc/rc.d/init.d目錄下,命令是:

cd /etc/rc.d/init.d

新建一個名為zookeeper的檔案,命令是:

touch zookeeper

如圖:

1.1檔案內容的第一種方案(推薦)

使用vim命令修改檔案內容,檔案內容的寫法有很多,除了上面的第一種方案,用下面的這種也可以:


#!/bin/bash #chkconfig:23451090 #description:servicezookeeper exportJAVA_HOME=/opt/java/jdk1.8.0_121 exportZOO_LOG_DIR=/opt/zookeeper/log ZOOKEEPER_HOME=/opt/zookeeper/zookeeper-3.4.10 suroot${ZOOKEEPER_HOME}/bin/zkServer.sh"$1"

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的情況下,執行命令:

servicezookeeper 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:23451090

#description:servicezookeeper



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的啟動日誌存放目錄,如果該目錄不存在,你必須手動建立一個。

轉自:https://www.cnblogs.com/alter888/p/8868811.html