zookeeper+centos7安裝配置
1下載Zookeeper
2安裝啟動測試
說明:(以下操作都是使員管理員賬號進行的)
2.1上載壓縮檔案並解壓
這裡使用的是CentOS7的作業系統。在opt目錄下新建一個名為zookeeper的目錄,將下載得到的zookeeper-3.4.10.tar.gz檔案上載上去。
如圖:
進入到該目錄下,命令是:
cd /opt/zookeeper
執行解壓命令:
tar -zxvf zookeeper-3.4.10.tar.gz
2.2新建zookeeper配置檔案
Zookeeper需要一個名為zoo.cfg的配置檔案,我們解壓後,得到的是官方的示例檔案,名為zoo_sample.cfg,這個檔案在zookeeper根目錄的conf子目錄下。如果我們想使用預設配置,直接將該檔案複製並且改名即可。裡面可以配置埠號,是否啟用叢集等等,這裡不展開,直接執行cp複製重新命名。
命令是:
cp /opt/zookeeper/zookeeper-3.4.10/conf/zoo_sample.cfg /opt/zookeeper/zookeeper-3.4.10/conf/zoo.cfg
如圖:
上面的命令生成了zoo.cfg
如圖:
說明:zoo.cfg裡可以配置東西,如果希望搭建zookeeper叢集,請看該博文:
2.4啟動zookeeper
進入到zookeeper的bin目錄下,命令:
cd /opt/zookeeper/zookeeper-3.4.10/bin
執行zkServer.sh指令碼進行啟動,命令是:
./zkServer.sh start
如圖:
2.5檢視zookeeper的狀態
如果此時不在zookeeper的bin 目錄下,先進入到該目錄下:
cd /opt/zookeeper/zookeeper-3.4.10/bin
執行命令檢視zookeeper狀態:
./zkServer.sh status
如圖:
standalone 是單機模式。
3將ZooKeeper設定為開機啟動(可選)
3.1在init.d目錄下新建指令碼檔案
進入到/etc/rc.d/init.d目錄下,命令是:
cd /etc/rc.d/init.d
新建一個名為zookeeper的檔案,命令是:
touch zookeeper
如圖:
3.1.1檔案內容的第一種方案(推薦)
使用vim命令修改檔案內容,檔案內容的寫法有很多,除了上面的第一種方案,用下面的這種也可以:
- #!/bin/bash
- #chkconfig: 2345 10 90
- #description: service zookeeper
- export JAVA_HOME=/opt/java/jdk1.8.0_121
- export ZOO_LOG_DIR=/opt/zookeeper/log
- ZOOKEEPER_HOME=/opt/zookeeper/zookeeper-3.4.10
- su root ${ZOOKEEPER_HOME}/bin/zkServer.sh "$1"
3.1.2檔案內容的第二種方案
使用vim命令修改檔案內容,檔案內容是:
- #!/bin/bash
- #chkconfig: 2345 10 90
- #description: service zookeeper
- export JAVA_HOME=/opt/java/jdk1.8.0_121
- export ZOO_LOG_DIR=/opt/zookeeper/log
- ZOOKEEPER_HOME=/opt/zookeeper/zookeeper-3.4.10
- 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
3.1.3 其他說明
注意1:新建檔案的命令是touch,編輯檔案的命令用vi和vim都行。如果不會使用vi和vim命令,直接在本地把檔案編輯好,然後用遠端工具上載上去都行,不過需要注意的是如果本地用的windows系統,需要把檔案轉為UNIX格式。轉換工具有很多,例如使用Notepad++
如圖:
注意2:兩個方案中的檔案頭部#註釋的部分不能少,而且檔案中諸如JDK路徑,zookeeper路徑都需要修改為你自己的。
3.2 執行一系列命令
為新建的/etc/rc.d/init.d/zookeeper檔案新增可執行許可權,命令是:
chmod +x /etc/rc.d/init.d/zookeeper
把zookeeper這個指令碼新增到開機啟動項裡面,命令是:
chkconfig --add zookeeper
如圖:
如果想看看是否新增成功,命令是:
chkconfig --list
如圖:
3.3執行測試看是否開機啟動
使用命令重啟機器,命令是:
reboot
方法一
檢視zookeeper的狀態
重啟機器,然後不手動啟動zookeeper的情況下,執行命令:
service zookeeper status
如圖:
方法二
檢視2181埠是否啟用,執行命令:
lsof -i:2181
如圖:
方法三
檢視網路狀態,執行命令:
netstat -lntup
如圖:
4報錯及解決
4.1 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
4.2Error 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的啟動日誌存放目錄,如果該目錄不存在,你必須手動建立一個。