1. 程式人生 > 其它 >ZooKeeper 命令列客戶端

ZooKeeper 命令列客戶端

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:表示監聽節點資料