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:子節點的個數