ZooKeeper 命令列客戶端
阿新 • • 發佈:2021-12-02
ZooKeeper 命令列客戶端
目錄啟動客戶端
- 啟動本地 zookeeper 客戶端:./zkCli.sh
[root@node-02 bin]# ./zkCli.sh Connecting to localhost:2181 # 2181 是客戶端監聽埠 ... [zk: localhost:2181(CONNECTED) 0]
- 啟動遠端 zookeeper 客戶端:./zkCli.sh –server ip:port
[root@node-01 bin]# ./zkCli.sh -server node-02:2181
Connecting to hdp-02:2181
...
[zk: node-02:2181(CONNECTED) 0]
客戶端命令
get 命令
獲取節點資訊,注意節點的路徑皆為絕對路徑,也就是說必要要從/(根路徑)開始。
[zk: localhost:2181(CONNECTED) 1] get /aa hello world #節點儲存的資料 cZxid = 0x0 #節點建立時的zxid ctime = Thu Jan 01 08:00:00 CST 1970 #節點建立時間 mZxid = 0x5 #節點最近一次更新時的zxid mtime = Thu Apr 27 15:09:00 CST 2017 #節點最近一次更新的時間 pZxid = 0xc #最近一次子節點的建立/刪除的時間戳 cversion = 1 #子節點資料更新次數 dataVersion = 2 #本節點資料更新次數 aclVersion = 0 #節點ACL(授權資訊)的更新次數 ephemeralOwner = 0x0 #該節點不是臨時節點 dataLength = 11 #節點資料長度 numChildren = 1 #節點的子節點個數 [zk: localhost:2181(CONNECTED) 1] get /aa watch # watch 監聽節點資料(只監聽一次) [zk: localhost:2181(CONNECTED) 1] set /aa dfdsf #修改節點資料顯示監聽結果 WATCHER:: WatchedEvent state:SyncConnected type:NodeDataChanged path:/aa
ls 命令
獲取路徑下的節點資訊(注意此路徑為絕對路徑,類似於 linux 的ls命令)
[zk: localhost:2181(CONNECTED) 1] ls /zookeeper
ls2 命令
ls2為ls命令的擴充套件,比 ls 命令多輸出本節點資訊
[zk: hdp-01(CONNECTED) 12] ls2 / [aa, zookeeper] cZxid = 0x0 ctime = Thu Jan 01 08:00:00 CST 1970 mZxid = 0x0 mtime = Thu Jan 01 08:00:00 CST 1970 pZxid = 0x20000001c cversion = 6 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 0 numChildren = 2
create 命令
建立節點,其中 -s 為順序節點,-e 臨時節點
# 建立持久化節點(預設)
[zk: localhost:2181(CONNECTED) 1] create /aa "aa"
# 建立臨時節點(客戶端連線斷開節點將自動刪除)
[zk: localhost:2181(CONNECTED) 1] create -e /bb "bb"
# 建立帶序號節點(自動給節點新增序號,避免節點重複)
[zk: localhost:2181(CONNECTED) 1] create -s /cc "cc"
Created /cc0000000006
# 建立臨時且帶序號節點
[zk: localhost:2181(CONNECTED) 1] create -e -s /dd "dd"
set 命令
設定節點的資料
[zk: localhost:2181(CONNECTED) 1] set /zookeeper "hello world"
rmr 命令
刪除節點命令
此命令與delete命令不同的是delete不可刪除有子節點的節點,但是rmr命令可以刪除,注意路徑為絕對路徑
[zk: localhost:2181(CONNECTED) 1] rmr /zookeeper/znode
delete 命令
刪除節點(刪除的節點不能有子節點)
[zk: hdp-01(CONNECTED) 28] delete /aa
stat 命令
檢視節點狀態資訊,與 get 命令區別是無法檢視節點資料
[zk: localhost:2181(CONNECTED) 1] stat /
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x1f
mtime = Thu Apr 27 16:05:14 CST 2017
pZxid = 0xc
cversion = 1
dataVersion = 3
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 1
connect 命令
連線 zookeeper 服務端,與 close 命令配合使用可以連線或者斷開 zookeeper 服務端
[zk: localhost:2181(CONNECTED) 0] connect 127.0.0.1:2181
quit 命令
退出客戶端連線
[zk: localhost:2181(CONNECTED) 1] quit
close 命令
斷開客戶端與服務端的連線
[zk: localhost:2181(CONNECTED) 1] close
printwatches 命令
設定和顯示監視狀態,on 或者 off
[zk: localhost:2181(CONNECTED) 1] printwatches on
history 命令
列出最近的歷史命令
[zk: hdp-01(CONNECTED) 14] history
4 - status /aa
5 - stat /aa
6 - close
7 - ls /
8 - connect hdp-01
9 - ls /
10 - ls2 /
11 - ls /
12 - ls2 /
13 - hostory
14 - history
redo 命令
再次執行某命令,其中 10 為命令ID,需與 history 命令配合使用
[zk: hdp-01(CONNECTED) 28] redo 10
sync 命令
強制同步
由於請求在半數以上的 zookeeper 伺服器節點上生效就表示此請求生效,那麼就會有一些zookeeper 伺服器節點上的資料是舊的,sync 命令就是強制同步所有的更新操作
[zk: hdp-01(CONNECTED) 28] sync /zookeeper
setquota 命令
設定子節點個數和資料長度配額
# 設定 /zookeeper/aa 子節點個數最大為4[zk: hdp-01(CONNECTED) 28] setquota –n 4 /zookeeper/aa# 設定 /zookeeper/bb 節點長度最大為100[zk: hdp-01(CONNECTED) 28] setquota –b 100 /zookeeper/bb
listquota 命令
顯示配額
[zk: hdp-01(CONNECTED) 22] listquota /zookeeperabsolute path is/zookeeper/quota/zookeeper/zookeeper_limitsOutput quota for /zookeepercount=2,bytes=-1 #節點個數限額為2,長度無限額。
delquota命令
刪除配額,-n 為子節點個數,-b 為節點資料長度。
[zk: localhost:2181(CONNECTED) 1] delquota –n 2
請參見 listquota 和 setquota命令
help 命令
顯示 zookeeper 客戶端支援的所有命令
[zk: localhost:2181(CONNECTED) 7] help[zk: localhost:2181(CONNECTED) 11] helpZooKeeper -server host:port cmd args stat path [watch] set path data [version] ls path [watch] delquota [-n|-b] path ls2 path [watch] setAcl path acl setquota -n|-b val path history redo cmdno printwatches on|off delete path [version] sync path listquota path rmr path get path [watch] create [-s] [-e] path data acl addauth scheme auth quit getAcl path close connect host:port
命令可選項 watch:表示監聽節點資料