zookeeper(三)——客戶端指令碼
zkCli.sh介紹:
進入bin目錄下執行命令:
sh zkCli.sh
當看到如下輸出資訊時,表示連線成功上本地的zookeeper伺服器了:
WatchedEvent state:SyncConnected type:None path:null [zk: localhost:2181(CONNECTED) 0]
連線指定伺服器,可以通過如下方式實現:
sh zkCli.sh -server ip:port
1、建立
使用create命令,可以建立一個zookeeper節點。用法如下:
create [-s] [-e] path data acl
其中,-s或-e分別指定節點特性:順序或lins臨時節點。預設情況xi下不新增cans引數的,建立的是持久ji節點。
執行如下命令:
[zk: localhost:2181(CONNECTED) 0] create /zk-book 123 Created /zk-book
執行完上面的命令,就在zookeeper的根節點下建立了一個叫做/zk-book的節點,並且節點的資料內容是“123”。另外,create命令的最後一個引數sh是acl,它是用來進行許可權控制的,預設的qing情況下,不做任何許可權控制。
2、讀取
與讀取相關的ming命令包括ls命令和get命令
ls
使用ls命令,可以列出zookeeper指定節點下所有子節點。當然,這個命令只能看到指定節點下第一級的所有子節點。用法如下:
ls path [watch]
其中path是指定節點的節點路徑。
執行如下命令:
[zk: localhost:2181(CONNECTED) 1] ls /
[zk-book, zookeeper]
預設在跟節點“/”下面有一個叫做/zookeeper的保留節點。
get
使用get命令,可以獲取zookeeper指定節點的資料內容和屬性資訊。yong用法如下:
get path [watch]
執行命令如下:
[zk: localhost:2181(CONNECTED) 2] get /zk-book 123 cZxid = 0x200000002 ctime = Thu Sep 13 08:23:42 PDT 2018 mZxid = 0x200000002 mtime = Thu Sep 13 08:23:42 PDT 2018 pZxid = 0x200000002 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 3 numChildren = 0
從上面的輸出資訊中,可以看到,第一行是節點/zk-book的資料內容,其他幾行則是建立該節點的事務ID(cZxid)、最後一次更新該節點的事務ID(mZxid)和最後一次更新ga該節點的時間(mtime)等屬性。
3、更新
使用set命令可以更新指定的資料內容。用法如下:
set path data [version]
其中,data就是要更新的新內容。注意,set命令後面haiy還有一個version引數,在zookeeper中,節點的資料是有版本的概念的,zheg這個引數用於指定本次更新操作是基於ZNode的哪一個資料版本進行的。
執行命令如下:
[zk: localhost:2181(CONNECTED) 3] set /zk-book 456
cZxid = 0x200000002
ctime = Thu Sep 13 08:23:42 PDT 2018
mZxid = 0x200000004
mtime = Thu Sep 13 08:38:23 PDT 2018
pZxid = 0x200000002
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
4、刪除
使用delete命令,可以刪除zookeeper上的指定節點。用法如下:
delete path [version]
執行命令如下:
delete /zk-book
注意:想要刪除某一個指定節點,該節點必須沒有子節點存在。