zookeeper基本配置,集羣配置html
ZooKeeper是一個完美的解決分佈式協調服務的好工具,用於管理大型主機。在分佈式環境中協調和管理服務是一個複雜的過程,ZooKeeper經過其簡單的架構和API解決了這個問題。ZooKeeper容許開發人員專一於核心應用程序邏輯,而沒必要擔憂應用程序的分佈式特性。apache
在安裝ZooKeeper以前,請確保你的系統是在如下任一操做系統上運行:緩存
任意Linux OS - 支持開發和部署。適合演示應用程序。服務器
Windows OS - 僅支持開發。架構
Mac OS - 僅支持開發。框架
ZooKeeper服務器是用Java建立的,它在JVM上運行。你須要使用JDK 6或更高版本。(請自行安裝.....)分佈式
要在你的計算機上安裝ZooKeeper框架,請訪問如下連接並下載最新版本的ZooKeeper。http://zookeeper.apache.org/releases.html 工具
到目前爲止,最新版本的ZooKeeper是3.4.6(ZooKeeper-3.4.6.tar.gz)。spa
使用如下命令提取tar文件操作系統
$ cd opt/ $ tar -zxf zookeeper-3.4.6.tar.gz $ cd zookeeper-3.4.6 $ mkdir data
在conf目錄下的zoo_sample.cfg文件複製一個副本zoo.cfg,在裏面進行ZooKeeper總體配置:
# 節點與服務器之間維持心跳的時間間隔
tickTime=2000
#緩存目錄
dataDir=/opt/zookeeper-3.4.6/data
#服務端口
clientPort=2181
運行zookeeper服務器
bin/zkServer.sh start
能夠查看ZooKeeper的執行狀態:
bin/zkServer.sh status
多個zookeeper同時啓動,先建立緩存目錄,每一個zookeeper一個,而後進去conf目錄,在前面的單機模式下的配置裏面多加幾行配置項。
# 節點與服務器之間維持心跳的時間間隔
tickTime=2000
#緩存目錄
dataDir=/opt/zookeeper-3.4.6/data
#服務端口
clientPort=2181
#集羣服務器列表
server.1=192.168.2.100:2888:3888
server.2=192.168.2.101:2888:3888
server.A=B:C:D
:其中 A 是一個數字,表示這個是第幾號服務器;B 是這個服務器的 ip 地址;C 表示的是這個服務器與集羣中的 Leader 服務器交換信息的端口(上面的端口Y);D 表示的是萬一集羣中的 Leader 服務器掛了,須要一個端口來從新進行選舉,選出一個新的 Leader,而這個端口就是用來執行選舉時服務器相互通訊的端口(上面的端口Z)。若是是僞集羣的配置方式,因爲 B 都是同樣,因此不一樣的 Zookeeper 實例通訊端口號不能同樣,因此要給它們分配不一樣的端口號。
2181是對鏈接zookeeper服務器的客戶端使用的,2888,3888是給zookeeper服務器本身使用的。不能搞錯了。
* 在上面配置的dataDir目錄下建立myid文件,填寫這個節點上的id號(至關重要,必定不要忘記),就是server.A=B:C:D
配置的A那個號碼 , myid裏面只寫這個id,別的不能多寫。
一樣的集羣列表在全部zookeeper上都同樣配置,每一個zookeeper 在緩存目錄裏有一個本身的id,不能有重複。
下面是zookeeper提供的功能。
zkServer.sh : ZooKeeper服務器的啓動、中止和重啓腳本; zkCli.sh : ZooKeeper的簡易客戶端; zkEnv.sh : 設置ZooKeeper的環境變量; zkCleanup.sh : 清理ZooKeeper歷史數據,包括事務日誌文件和快照數據文件。 查看ZooKeeper的執行狀態: zookeeper/bin/zkServer.sh status