1. 程式人生 > >zookeeper(三)——客戶端指令碼

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

注意:想要刪除某一個指定節點,該節點必須沒有子節點存在。