1. 程式人生 > >zookeeper安裝單點、叢集搭建、開機自啟動

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叢集搭建成功!