Zookeeper安裝與基礎命令操作

安裝ZK


下載安裝包

點擊下載zookeeper 3.4.14

PS: Mac之前下載了3.5.6啓動之後,報錯

找不到或無法加載主類 org.apache.zookeeper.server.quorum.QuorumPeerMain

應該是lib下的jar包缺失,省的麻煩,我就直接下載了3.4.14版本

啓動ZkServer

執行zk的bin下面的啓動腳本;例如

sh ~/Documents/各種安裝包/zookeeper-3.4.14/bin/zkServer.sh start 

查看狀態、停止zk服務

##查看zk啓動狀態
sh ~/Documents/各種安裝包/zookeeper-3.4.14/bin/zkServer.sh status
## 停止
sh ~/Documents/各種安裝包/zookeeper-3.4.14/bin/zkServer.sh stop

客戶端連接ZkServer

sh ~/Documents/各種安裝包/zookeeper-3.4.14/bin/zkCli.sh

在這裏插入圖片描述

ls 查看命令

在這裏插入圖片描述

get 獲取數據

get和stat的區別是get比stat多返回了節點數據:

[zk: localhost:2181(CONNECTED) 19] get /zookeeper/quota

cZxid = 0x0       #創建節點的id
ctime = Thu Jan 01 08:00:00 CST 1970 #節點的創建時間
mZxid = 0x0  #修改節點的id
mtime = Thu Jan 01 08:00:00 CST 1970  #修改節點的時間
pZxid = 0x0  #子節點的id
cversion = 0  #子節點的版本
dataVersion = 0 #當前節點數據的版本
aclVersion = 0 #權限的版本
ephemeralOwner = 0x0 #判斷是否是臨時節點
dataLength = 0  #數據的長度
numChildren = 0  #子節點的數量

create 創建節點

  • create [-s] [-e] path data acl 可以注意一下各個版本的變化
    -s: 創建順序節點 自動累加(全局累加)
    在這裏插入圖片描述
    -e:創建臨時節點

set path data [version] 修改節點

在這裏插入圖片描述
根據版本號修改
在這裏插入圖片描述

delete path [version] 刪除節點

delete只能用來刪除葉子節點,如果節點下有子節點的話則不能刪除

rmr path

用來刪除節點,與delete的區別是delete只能用來刪除葉子節點,如果節點下有子節點的話則不能刪除,則rmr可以刪除非葉子節點,即節點下有子節點時仍可以刪除節點,zk中的delete類似於Linux下的rmdir,只能用來刪除空目錄,而rmr則類似於rm -rf,不管目錄下面有什麼都遞歸刪除

watch通知機制

關於watcher機制大體的理解可以爲,當每個節點發生變化,都會觸發watcher事件,類似於mysql的觸發器。zk中 watcher是一次性的,觸發後立即銷燬。可以參考https://blog.csdn.net/hohoo1990/article/details/78617336

  • stat path [watch]設置watch事件
  • get path [watch]設置watch事件
  • 子節點創建和刪除時觸發watch事件,子節點修改不會觸發該事件

stat path [watch] 設置watch事件

在這裏插入圖片描述

ACL權限控制

ZK的節點有5種操作權限:CREATEREADWRITEDELETEADMIN 也就是 增、刪、改、查、管理權限,這5種權限簡寫爲crwda(即:每個單詞的首字符縮寫)。
注:這5種權限中,delete是指對子節點的刪除權限,其它4種權限指對自身節點的操作權限

身份的認證有4種方式:

  • world:默認方式,相當於全世界都能訪問
  • auth:代表已經認證通過的用戶(cli中可以通過addauth digest user:pwd 來添加當前上下文中的授權用戶)
  • digest:即用戶名:密碼這種方式認證,這也是業務系統中最常用的
  • ip:使用Ip地址認證

使用[scheme:id:permissions]來表示acl權限

getAcl:獲取某個節點的acl權限信息

在這裏插入圖片描述

setAcl 設置權限

在這裏插入圖片描述

acl Auth 密碼明文設置

acl digest 密碼密文設置

acl ip 控制客戶端

四字命令Four Letter Words

  • 使用四字命令需要安裝nc命令,(yum install nc)

stat 查看狀態信息

echo stat | nc 192.168.0.68 2181

ruok 查看zookeeper是否啓動

echo ruok | nc 192.168.0.68 2181

dump 列出沒有處理的節點,臨時節點

echo dump | nc 192.168.0.68 2181

conf 查看服務器配置

echo conf | nc 192.168.0.68 2181

cons 顯示連接到服務端的信息

echo cons | nc 192.168.0.68 2181

envi 顯示環境變量信息

echo envi | nc 192.168.0.68 2181

mntr 查看zk的健康信息

echo mntr | nc 192.168.0.68 2181

wchs 展示watch的信息

echo wchs | nc 192.168.0.68 2181

wchc和wchp 顯示session的watch信息 path的watch信息

  • 需要在 配置zoo.cfg文件中添加 4lw.commands.whitelist=*

參考文章

1.Zookeeper基礎命令操作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章