1. 程式人生 > >Zookeeper的安裝和部署

Zookeeper的安裝和部署

本文為linux centOS 7環境的安裝與部署

1、安裝

從官網映象中下載 http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.4-beta/   

通過以下命令,解壓安裝包

tar -zxvf zookeeper-3.5.4-beta.tar.gz

2、目錄結構:

  • bin目錄 
    zk的可執行指令碼目錄,包括zk服務程序,zk客戶端,等指令碼。其中,.sh是Linux環境下的指令碼,.cmd是Windows環境下的指令碼。
  • conf目錄 
    配置檔案目錄。zoo_sample.cfg為樣例配置檔案,需要修改為自己的名稱,一般為zoo.cfg。log4j.properties為日誌配置檔案。
  • lib 
    zk依賴的包。
  • contrib目錄 
    一些用於操作zk的工具包。
  • recipes目錄 
    zk某些用法的程式碼示例

3、新增zoo.cfg檔案,檔案基本資訊

複製zoo_sample.cfg ,否則執行會報錯 ,需要zoo.cfg檔案

cp zoo_sample.cfg zoo.cfg

配置檔案資訊

  • initLimit 
    ZooKeeper叢集模式下包含多個zk程序,其中一個程序為leader,餘下的程序為follower。 
    當follower最初與leader建立連線時,它們之間會傳輸相當多的資料,尤其是follower的資料落後leader很多。initLimit配置follower與leader之間建立連線後進行同步的最長時間。
  • syncLimit 
    配置follower和leader之間傳送訊息,請求和應答的最大時間長度。
  • tickTime 
    tickTime則是上述兩個超時配置的基本單位,例如對於initLimit,其配置值為5,說明其超時時間為 2000ms * 5 = 10秒。
  • dataDir 
    其配置的含義跟單機模式下的含義類似,不同的是叢集模式下還有一個myid檔案。myid檔案的內容只有一行,且內容只能為1 - 255之間的數字,這個數字亦即上面介紹server.id中的id,表示zk程序的id。

4、執行命令

進入bin目錄

sh zkServer.sh start  啟動
sh zkServer.sh status 檢視狀態
sh zkServer.sh stop 關閉
sh zkCli.sh  進入客戶端
sh zkCli.sh -server 192.168.11.1  連線其他伺服器

5、搭建叢集環境

建議2n+1臺zookeeper,我演示的3臺

5.1配置資訊

在 datadir目錄下建立myid 檔案 內容分別為1 、2 、 3 ,myid不能重複

在zoo.cfg檔案最後新增 server.myid=host:port1:port2 ,埠 :2888 資料同步  3888選舉
其中myid為一個數字,表示zk程序的id,這個id也是dataDir目錄下myid檔案的內容。 
host是該zk程序所在的IP地址,port1表示follower和leader交換訊息所使用的埠,port2表示選舉leader所使用的埠。

server.1=192.168.157.157:2888:3888
server.2=192.168.157.128:2888:3888
server.3=192.168.157.129:2888:3888

5.2啟動

啟動3臺zookeeper 

sh zkServer.sh start

進入log目錄下  使用tail -f 檢視日誌  

會遇到報錯:

         啟動時會報錯:java.net.NoRouteToHostException: 沒有到主機的路由

解決方法:systemctl stop firewalld.service 關閉防火牆 / 或者開啟埠