ZooKeeper命令行界面(CLI)用于與ZooKeeper集合進(jìn)行交互以進(jìn)行開發(fā)。它有助于調(diào)試和解決不同的選項(xiàng)。
create /path /data
create /FirstZnode “Myfirstzookeeper-app"
[zk: localhost:2181(CONNECTED) 0] create /FirstZnode “Myfirstzookeeper-app" Created /FirstZnode
要?jiǎng)?chuàng)建順序節(jié)點(diǎn),請(qǐng)?zhí)砑觙lag:-s,如下所示。
create -s /path /data
create -s /FirstZnode second-data
[zk: localhost:2181(CONNECTED) 2] create -s /FirstZnode “second-data" Created /FirstZnode0000000023
要?jiǎng)?chuàng)建臨時(shí)節(jié)點(diǎn),請(qǐng)?zhí)砑觙lag:-e ,如下所示。
create -e /path /data
create -e /SecondZnode “Ephemeral-data"
[zk: localhost:2181(CONNECTED) 2] create -e /SecondZnode “Ephemeral-data" Created /SecondZnode
記住當(dāng)客戶端斷開連接時(shí),臨時(shí)節(jié)點(diǎn)將被刪除。你可以通過退出ZooKeeper CLI,然后重新打開CLI來嘗試。
它返回znode的關(guān)聯(lián)數(shù)據(jù)和指定znode的元數(shù)據(jù)。你將獲得信息,例如上次修改數(shù)據(jù)的時(shí)間,修改的位置以及數(shù)據(jù)的相關(guān)信息。此CLI還用于分配監(jiān)視器以顯示數(shù)據(jù)相關(guān)的通知。
get /path
get /FirstZnode
[zk: localhost:2181(CONNECTED) 1] get /FirstZnode “Myfirstzookeeper-app" cZxid = 0x7f ctime = Tue Sep 29 16:15:47 IST 2015 mZxid = 0x7f mtime = Tue Sep 29 16:15:47 IST 2015 pZxid = 0x7f cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 22 numChildren = 0
要訪問順序節(jié)點(diǎn),必須輸入znode的完整路徑。
get /FirstZnode0000000023
[zk: localhost:2181(CONNECTED) 1] get /FirstZnode0000000023 “Second-data" cZxid = 0x80 ctime = Tue Sep 29 16:25:47 IST 2015 mZxid = 0x80 mtime = Tue Sep 29 16:25:47 IST 2015 pZxid = 0x80 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 13 numChildren = 0
當(dāng)指定的znode或znode的子數(shù)據(jù)更改時(shí),監(jiān)視器會(huì)顯示通知。你只能在 get 命令中設(shè)置watch。
get /path [watch] 1
get /FirstZnode 1
[zk: localhost:2181(CONNECTED) 1] get /FirstZnode 1 “Myfirstzookeeper-app" cZxid = 0x7f ctime = Tue Sep 29 16:15:47 IST 2015 mZxid = 0x7f mtime = Tue Sep 29 16:15:47 IST 2015 pZxid = 0x7f cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 22 numChildren = 0
輸出類似于普通的 get 命令,但它會(huì)等待后臺(tái)等待znode更改。<從這里開始>
設(shè)置指定znode的數(shù)據(jù)。完成此設(shè)置操作后,你可以使用 get CLI命令檢查數(shù)據(jù)。
set /path /data
set /SecondZnode Data-updated
[zk: localhost:2181(CONNECTED) 1] get /SecondZnode “Data-updated" cZxid = 0x82 ctime = Tue Sep 29 16:29:50 IST 2015 mZxid = 0x83 mtime = Tue Sep 29 16:29:50 IST 2015 pZxid = 0x82 cversion = 0 dataVersion = 1 aclVersion = 0 ephemeralOwner = 0x15018b47db00000 dataLength = 14 numChildren = 0
如果你在 get 命令中分配了watch選項(xiàng)(如上一個(gè)命令),則輸出將類似如下所示。
[zk: localhost:2181(CONNECTED) 1] get /FirstZnode “Mysecondzookeeper-app" WATCHER: : WatchedEvent state:SyncConnected type:NodeDataChanged path:/FirstZnode cZxid = 0x7f ctime = Tue Sep 29 16:15:47 IST 2015 mZxid = 0x84 mtime = Tue Sep 29 17:14:47 IST 2015 pZxid = 0x7f cversion = 0 dataVersion = 1 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 23 numChildren = 0
創(chuàng)建子節(jié)點(diǎn)類似于創(chuàng)建新的znode。唯一的區(qū)別是,子znode的路徑也將具有父路徑。
create /parent/path/subnode/path /data
create /FirstZnode/Child1 firstchildren
[zk: localhost:2181(CONNECTED) 16] create /FirstZnode/Child1 “firstchildren" created /FirstZnode/Child1 [zk: localhost:2181(CONNECTED) 17] create /FirstZnode/Child2 “secondchildren" created /FirstZnode/Child2
此命令用于列出和顯示znode的子項(xiàng)。
ls /path
ls /MyFirstZnode
[zk: localhost:2181(CONNECTED) 2] ls /MyFirstZnode [mysecondsubnode, myfirstsubnode]
狀態(tài)描述指定的znode的元數(shù)據(jù)。它包含時(shí)間戳,版本號(hào),ACL,數(shù)據(jù)長(zhǎng)度和子znode等細(xì)項(xiàng)。
stat /path
stat /FirstZnode
[zk: localhost:2181(CONNECTED) 1] stat /FirstZnode cZxid = 0x7f ctime = Tue Sep 29 16:15:47 IST 2015 mZxid = 0x7f mtime = Tue Sep 29 17:14:24 IST 2015 pZxid = 0x7f cversion = 0 dataVersion = 1 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 23 numChildren = 0
移除指定的znode并遞歸其所有子節(jié)點(diǎn)。只有在這樣的znode可用的情況下才會(huì)發(fā)生。
rmr /path
rmr /FirstZnode
[zk: localhost:2181(CONNECTED) 10] rmr /FirstZnode [zk: localhost:2181(CONNECTED) 11] get /FirstZnode Node does not exist: /FirstZnode
刪除(delete/path)命令類似于 remove 命令,除了它只適用于沒有子節(jié)點(diǎn)的znode。
更多建議: