1. 程式人生 > >Linux下搭建Zookeeper分散式叢集(詳細圖解演示)

Linux下搭建Zookeeper分散式叢集(詳細圖解演示)

一:實驗環境搭建.

      1.1 Linux使用的是CentOS7.3的發行版,Zookeeper的版本是3.4.12.搭建三個節點的叢集,是分別在三臺虛擬機器上配置Zookeeper節點,不是在一臺虛擬機器上搭建的三個Zookeeper節點的偽叢集.分散式叢集配置奇數個節點.

      1.2 使用VMware的克隆技術,完成了三個節點的搭建.IP分別是:

          ①:192.168.199.133.

          ②:192.168.199.136.

          ③:192.168.199.137.

     1.3 Java環境檢查.(由於是從192.168.199.133這臺虛擬機器上克隆的,只檢查其它兩臺即可).

           ① 192.168.199.136.

          ② 192.168.199.137.

   1.4 Zookeeper下載.

     ① 192.168.199.133上面下載然後scp至其他兩臺即可.

     wget    http://mirrors.shu.edu.cn/apache/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz

   ②:分別將壓縮包複製到其他兩臺虛擬機器上.(可以提前配置一下免密登入)

   scp /usr/local/zookeeper-3.4.12.tar.gz [email protected]:/usr/local

  scp /usr/local/zookeeper-3.4.12.tar.gz [email protected]:/usr/local

   192.168.199.136下/usr/local檢視.

   192.168.199.137下/usr/local檢視.

  1.5 Zookeeper的解壓.

        ①:192.168.199.133下解壓.

               tar zxvf zookeeper-3.4.12.tar.gz

               rm -rf zookeeper-3.4.12.tar.gz

      ②:192.168.199.136下解壓.

             tar zxvf zookeeper-3.4.12.tar.gz

              rm -rf zookeeper-3.4.12.tar.gz

       ③:192.168.199.137下解壓.

              tar zxvf zookeeper-3.4.12.tar.gz

              rm -rf zookeeper-3.4.12.tar.gz

二:Zookeeper叢集配置.

     2.1 完成Zookeeper的解壓,然後在每個節點Zookeeper目錄下建立資料目錄zkData.不使用/tmp目錄.建立myid.

然後在zkData目錄下建立一下myid檔案.(指定Server的編號).

          cd zkData

          touch myid

三臺機器分別指定為1,2,3.在搭建叢集的時候,Zookeeper在啟動的時候,會讀取裡面的資料與zoo.cfg中配置資訊進行比較進而判斷是哪個Server.

2.2 修改配置檔案.(關鍵)

     ①.修改conf目錄下的zoo_sample.cfg為zoo.cfg.(三個都修改).

         mv zoo_sample.cfg zoo.cfg

     ②.修改zoo.cfg檔案.

          配置通式:serevr.A=B:C:D.解釋如下.

     A:表示這是第幾號機器.

     B:表示這臺伺服器的IP地址.

     C:表示這臺機器與叢集Leader伺服器交換資訊的埠.常用2888埠.

     D:如果叢集中的Leader伺服器掛了,選出一個新的Leader時,這個埠用來和其他伺服器進行通訊的埠.常用3888埠.

因為是分散式叢集搭建,所以可以配置一樣的埠,如果是偽叢集,在一臺機器上搭建時,B就配置為127.0.0.1或localhost.C和D配置均為不同的埠.分散式叢集中的每個節點都分佈在不同的機器上,每個機器都有自己玩的IP地址,埠也不會被其他節點所佔用.

     ③.vim zoo.cfg.(三個節點配置一樣的).

          tickTime=2000

          initLimit=10

         syncLimit=5

         dataDir=/usr/local/zookeeper-3.4.12/zkData

         clientPort=1281

        server.1=192.168.199.133:2888:3888
        server.2=192.168.199.136:2888:3888
        server.3=192.168.199.137:2888:3888

三: Zookeeper叢集啟動.

     3.1 三臺機器分別採用後臺啟動方式啟動.一次在相應的bin目錄下啟動,在啟動的過程中也完成了Leader的選舉.啟動順序如下

      分別在bin目錄下使用sh zkServer.sh start

      ① :192.168.199.133.

    ② 192.168.199.136.

   ③ 192.168.217.137

3.2 檢視Zookeeper叢集狀態.

    分別在啟動目錄下使用sh zkServer.sh status.

    ①:192.168.199.133

   ②:192.168.199.136

  ③:192.168.199.137.

一次啟動三臺Zookeeper服務節點,根據leader票選演算法,server2為leader.依據各自的投票.(myid,ZXID).半數以上即可.

三 Zookeeper的leader選舉演算法介紹.

    Leader選舉是分散式資料一致性額關鍵所在.分為伺服器啟動時選舉和服務無法和leader保持連線.

   3.1 推薦這篇文章,寫的非常清楚.Leader選舉.

   至此完成了Zookeeper的分散式叢集搭建,偽分散式就不演示了,比較簡單.整個過程還是比較順利的.