Zookeeper的安裝和部署
阿新 • • 發佈:2018-12-07
本文為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 關閉防火牆 / 或者開啟埠