zookeeper集羣搭建

zookeeper安裝、zookeeper集羣安裝

1.下載 zookeeper-3.4.5.tar.gz

地址:http://archive.apache.org/dist/zookeeper/zookeeper-3.4.5/

2. 將下載的文件FTP到linux機器上

3.將解壓並拷貝到/usr/local路徑下

      tar zxvf zookeeper-3.4.5.tar.gz  
      cp /root/zookeeper-3.4.5 /usr/local/zookeeper-3.4.5

4.生成zoo.cfg文件

      cd /usr/local/zookeeper-3.4.5/conf

      cp zoo_sample.cfg  zoo.cfg

5.配置zookeeper:

     vi conf/zoo.cfg

6.a.如果不需要集羣,zoo.cfg的內容如下:

tickTime=2000 

      initLimit=10  
      syncLimit=5  
      dataDir=/opt/dubbo/zookeeper-data (其中data目錄需改成你真實輸出目錄) 
      clientPort=2181 

   b.如果需要配置集羣,則zoo.cfg的內容如下

          tickTime=2000

          initLimit=10

          syncLimit=5

          dataDir=/usr/local/zookeeper-data(其中data目錄和server地址需改成你真實部署機器的信息)

          clientPort=2181

          server.1=192.168.20.32:2555:3555

          server.2=192.168.20.33:2555:3555

          server.3=192.168.20.34:2555:3555

說明:

     2555端口號是zookeeper服務之間通信的端口,而3555是zookeeper與其他應用程序通信的端口。而zookeeper是在hosts中已映射了本機的ip。

     initLimit:這個配置項是用來配置 Zookeeper 接受客戶端(這裏所說的客戶端不是用戶連接 Zookeeper服務器的客戶端,而是 Zookeeper 服務器集羣中連接到 Leader 的 Follower 服務器)初始化連接時最長能忍               受多少個心跳時間間隔數。當已經超過 10 個心跳的時間(也就是 tickTime)長度後 Zookeeper 服務器還沒有收到客戶端的返回信息,那麼表明這個客戶端連接失敗。總的時間長度就是 5*2000=10 秒。

     syncLimit:這個配置項標識 Leader 與 Follower 之間發送消息,請求和應答時間長度,最長不能超過多少個 tickTime 的時間長度,總的時間長度就是 2*2000=4 秒。

     server.A=B:C:D:其中 A 是一個數字,表示這個是第幾號服務器;B 是這個服務器的 ip 地址;C 表示的是這個服務器與集羣中的 Leader 服務器交換信息的端口;D 表示的是萬一集羣中的 Leader 服務器掛了,需要一個端口來重新進行選舉,選出一個新的 Leader,而這個端口就是用來執行選舉時服務器相互通信的端口。如果是僞集羣的配置方式,由於 B 都是一樣,所以不同的 Zookeeper 實例通信端口號不能一樣,所以要給它們分配不同的端口號。

7.創建data存放目錄:

          在上述配置文件中dataDir指定的位置創建文件並編輯

          mkdir /usr/local/zookeeper-data

          vi myid

說明:myid指明自己的id,對應上面zoo.cfg中server.後的數字,第一臺的內容爲1,第二臺的內容爲2。

8.啓動:

./bin/zkServer.sh start 

9.停止:

./bin/zkServer.sh stop 

10.啓動後jps下

Image

QuorumPeerMain(是zookeeper的進程)

          如圖所示 說明安裝完成。

11.搭建zookeeper 集羣:

     比如要搭建三臺機器的集羣(ip分別爲:192.168.20.32   192.168.20.33   192.168.20.34)

     將上面在32機器上搭建好的zookeeper-3.4.5 文件夾 拷貝到33 ,34 機器的對應目錄上。

     將上述的zookeeper-data 也拷貝到33 ,34 機器上的對應目錄上。

     爲33  34 機器上的/usr/local/zookeeper-3.4.5/bin目錄付權限:

           cd /usr/local/zookeeper-3.4.5/

           chmod -R 777 bin

 Image(1)

       進入zookeeper-data目錄:

          cd zookeeper-data/

          修改myid文件 (myid指明自己的id,對應上面zoo.cfg中server.後的數字,第一臺的內容爲1,第二臺的內容爲2。)

          vi myid

每臺機器都啓動zookeeper:

./bin/zkServer.sh start 

查看啓動狀態:

./zkServer.sh status(20.32) mode爲follower 說明是跟隨者節點

Image(2)

./zkServer.sh status(20.33) mode爲follower 說明是跟隨者節點

Image(3)

./zkServer.sh status(20.34) mode爲leader  說明是主節點

Image(4)

補充知識:

zookeeper使用的zab協議,並不是第一個啓動的節點就是leader,而是等所有的節點都啓動,並相互通訊完畢,然後纔開始發起投票,選舉leader,這個算法很複雜,並不是簡簡單單的第一臺就是leader

看到上述3個機器的zookeeper 說明zookeeper集羣搭建完成!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章