zookeeper安裝單點、叢集搭建、開機自啟動
1下載Zookeeper
http://mirror.bit.edu.cn/apache/zookeeper/
http://mirror.bit.edu.cn/apache/zookeeper/stable/wwget
wget http://mirror.bit.edu.cn/apache/zookeeper/stable/zookeeper-3.4.12.tar.gz
tar zxvfzookeeper-3.4.12.tar.gz
mv zookeeper-3.4.12 zookeeper
cd zookeeper
ll
cpzookeeper-3.4.12/conf/zoo_sample.cfg zookeeper-3.4.12/conf/zoo.cfg
cd zookeeper-3.4.12/bin/
./zkServer.sh start
執行命令檢視zookeeper狀態:
./zkServer.sh status
3將ZooKeeper設定為開機啟動(可選)
3.1在init.d目錄下新建指令碼檔案
進入到/etc/rc.d/init.d目錄下,命令是:
cd /etc/rc.d/init.d
新建一個名為zookeeper的檔案,命令是:
touch zookeeper
指令碼內容如下:
#!/bin/bash
#chkconfig:2345 10 90
#description:service zookeeper
export JAVA_HOME=//usr/local/java/jdk1.8.0_171
export ZOO_LOG_DIR=/opt/zookeeper/log
ZOOKEEPER_HOME=/opt/zookeeper/zookeeper-3.4.12
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.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
檢視zookeeper服務的狀態
上面是講述的如何搭建一個單機版的zookeeper註冊中心,下面我們開始講解搭建zookeeper叢集
首選我們準備了兩臺機器,內網IP如下:
192.168.0.12 master
192.168.1.13 slave1
下面我們修改hosts檔案新增對映,修改主機名 vim /etc/hosts ,在hosts檔案中新增一下兩項
進入zookeeper目錄,建立資料夾data,進入data,建立檔案myid,20和21裡面的myid分別寫入 1和2
進入conf目錄,有一份配置檔案模板,複製一份,名稱為zoo.cfg,修改zoo.cfg,內容如下
dataDir=/opt/soft/zookeeper-3.4.5/data (剛建立的data目錄)
clientPort=2181
initLimit=10
syncLimit=5
tickTime=2000
server.1=master:2888:3888
server.2=slave1:2888:3888
進入到ZooKeeper的客戶端命令列下面,執行 ls /,會輸出 [zookeeper],這時候建立一個節點 create /test,然後再檢視 get /test,列印一下資訊
關閉防火牆(如果沒關閉防火牆,在啟動之後,會一直報錯);
執行命令:bin/zkServer.sh start conf/zoo.cfg,分別啟動ZooKeeper
然後:tail -300f zookeeper.out 檢視輸出的內容,如果沒報錯,說明啟動成功;
再接下來檢視叢集是搭建成功:
執行:bin/zkCli.sh -server master:2181 (master和slave1,隨便選擇一個)
進入到ZooKeeper的客戶端命令列下面,執行 ls /,會輸出 [zookeeper],這時候建立一個節點 create /test,然後再檢視 get /test,列印一下資訊
再切換到另外一個IP,在執行執行:bin/zkCli.sh -server master:2181 ,再 ls / 檢視,就可以看到剛剛在另外一臺機器上建立的節點test。
檢視zookeeper程序狀態
bin/zkServer.sh status
Using config: /opt/soft/zookeeper-3.4.8/bin/../conf/zoo.cfg
Mode: follower //角色
jps
3220 Jps
2813 QuorumPeerMain //zookeeper程序名
以上都通過,說明ZooKeeper叢集搭建成功!