ZooKeeper命令行界面(CLI)用於與ZooKeeper集合進行交互以進行開發。它有助於調試和解決不一樣的選項。node
要執行ZooKeeper CLI操做,首先打開ZooKeeper服務器(「bin/zkServer.sh start」),而後打開ZooKeeper客戶端(「bin/zkCli.sh」)。一旦客戶端啓動,你能夠執行如下操做:ZooKeeper命令行界面(CLI)用於與ZooKeeper集合進行交互以進行開發。它有助於調試和解決不一樣的選項。服務器
要執行ZooKeeper CLI操做,首先打開ZooKeeper服務器(「bin/zkServer.sh start」),而後打開ZooKeeper客戶端(「bin/zkCli.sh」)。一旦客戶端啓動,你能夠執行如下操做:create /path /data
create /FirstZnode 「Myfirstzookeeper-app"
[zk: localhost:2181(CONNECTED) 0] create /FirstZnode 「Myfirstzookeeper-app" Created /FirstZnode
要建立順序節點,請添加flag:-s,以下所示。app
create -s /path /data
create -s /FirstZnode second-data
[zk: localhost:2181(CONNECTED) 2] create -s /FirstZnode 「second-data" Created /FirstZnode0000000023
要建立臨時節點,請添加flag:-e ,以下所示。命令行
create -e /path /data
create -e /SecondZnode 「Ephemeral-data"
[zk: localhost:2181(CONNECTED) 2] create -e /SecondZnode 「Ephemeral-data" Created /SecondZnode
記住當客戶端斷開鏈接時,臨時節點將被刪除。你能夠經過退出ZooKeeper CLI,而後從新打開CLI來嘗試。調試
它返回znode的關聯數據和指定znode的元數據。你將得到信息,例如上次修改數據的時間,修改的位置以及數據的相關信息。此CLI還用於分配監視器以顯示數據相關的通知。遞歸
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
要訪問順序節點,必須輸入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
當指定的znode或znode的子數據更改時,監視器會顯示通知。你只能在 get 命令中設置watch。rem
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 命令,但它會等待後臺等待znode更改。<從這裏開始>get
設置指定znode的數據。完成此設置操做後,你可使用 get CLI命令檢查數據。io
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選項(如上一個命令),則輸出將相似以下所示。
[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
建立子節點相似於建立新的znode。惟一的區別是,子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的子項。
ls /path
ls /MyFirstZnode
[zk: localhost:2181(CONNECTED) 2] ls /MyFirstZnode [mysecondsubnode, myfirstsubnode]
狀態描述指定的znode的元數據。它包含時間戳,版本號,ACL,數據長度和子znode等細項。
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並遞歸其全部子節點。只有在這樣的znode可用的狀況下才會發生。
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 命令,除了它只適用於沒有子節點的znode。