1. 程式人生 > >Zookeeper搭建及介紹

Zookeeper搭建及介紹

Zk環境安裝

單機版

(1)建立如下目錄,將tar包上傳並解壓

(2)進入解壓後的zk,建立data目錄

(3)複製配置檔案並重命名如下,然後修改配置

(4)修改配置檔案中的dataDir為自己建立的資料目錄

(5)在zookeeper的bin目錄,啟動zk

(6)停止zk:start改stop,看狀態:start改status

偽分佈版

(1)將上面的單機版複製三份,比如01,02,03

(2)給節點寫入myid,節點的唯一標識

(3)修改配置檔案zk01,zk02和zk03也要修改,三個節點clientPor不能一樣t

(4)三個節點分別啟動,關閉也是分別關閉(注意進入到具體目錄去操作)

完全分佈版

(1)用之前配置的單機版,複製三份,每個機器放一份

(2)三臺機器都寫入myid

(3)三臺機器修改zoo.cfg配置檔案

(4)分別在三個節點啟動zk

Zk詳解

配置檔案詳解

(1)clientPort

客戶端連線server的埠,即外部服務埠,預設是2181

(2)dataDir

存myid,預設的事務日誌也儲存在這裡,存Version

(3)tickTime

是一個zk中的時間單元,zk中所有時間都是以這個時間單元為基礎的,比如定義一些時間配置時,整數倍定義,session超時時間定義2*tickTime

(4)initLimit

Follower啟動過程中,從leader同步所有最新資料,leader限制Follower在initlimit時間內完成同步任務,如果leader資料量大,調高此屬性

(5)syncLimit

同步時間,設定時最好別太大

(6)maxClientCnxns

客戶端與伺服器之間連線數的限制,預設為60

(7)server.A=B:C:D

server.1=node01:2888:3888

server.2=node02:2888:3888

server.3=node03:2888:3888

A:必須是一個數字,代表的是幾號伺服器

B:伺服器的IP

C:表示伺服器叢集中,leader伺服器交換資訊的埠

D:選舉用到的埠,若leader掛掉,通過此埠選舉

(8)若需要配置observer,修改配置如下

server.1=node01:2888:3888

server.2=node02:2888:3888

server.3=node03:2888:3888:observer

解壓目錄詳解

Bin目錄:執行指令碼

  • zkCleanup.sh:會清理日誌資訊,生產環境下最好不要用
  • zkCli.sh:啟動client端命令列,直接啟動的話,訪問localhost:2181,

./zkCli.sh    客戶端訪問遠端 zkCli.sh-server ip:2181

Conf目錄:配置檔案

Contrib:一些用於操作zk的工具包

Lib:zk的依賴包

Recipes:存放zk的示例程式碼

dist-maven:編譯後釋出的目錄

命令列的操作

(1)help 快速幫助

(2) ls 可以新增watch event

(3)create:create [-s] [-e] path data acl

建立zk節點: -s順序節點和-e臨時節點(session失效則節點消失),如果這兩個引數不寫,則建立持久化節點

  • Path:建立節點的全路徑
  • Data:當前節點儲存的資料
  • Acl:用來控制權限,不寫的情況下,認為不控制權限

(4)get:獲取節點資料和屬性資訊

123:節點資料

  • cZxid:節點建立的zxid,zk狀態的每一次改變,都對應一個遞增的transaction id,該ID稱為zxid
  • ctime:節點建立的時間戳
  • mZxid:節點最新更新發生的zxid
  • mtime:節點最新更新發生的時間戳
  • pZxid:父類的zxid
  • cversion:子節點的更新次數
  • dataVersion:節點資料的更新次數
  • aclVersion:節點ACL許可權更新的次數
  • ephemeralOwner:記錄是否為臨時節點
  • numChildren:子節點的個數