zookeepercli - Command Line Interface for ZooKeeper

簡介

ZooKeeper命令行界面(CLI)用於與ZooKeeper進行交互以用於開發目的。它對於調試頗有用。html

要執行ZooKeeper CLI操做,首先打開你的ZooKeeper服務器(「bin / zkServer.sh start」),而後打開ZooKeeper客戶端(「bin / zkCli.sh」)。一旦客戶端啓動,能夠執行如下操做 -node

  • 建立znode
  • 獲取數據
  • 觀察znode的變化
  • 設置數據
  • 建立znode的子節點
  • 列出znode的子節點
  • 檢查狀態
  • 刪除/刪除znode

如今讓咱們用一個例子逐個看看上面的命令。服務器

 

建立Znodes

建立具備給定路徑的znode。默認狀況下,全部znode都是持久的。app

語法

create /path /data

Examplespa

create /FirstZnode 「Myfirstzookeeper-app」

輸出

[zk: localhost:2181(CONNECTED) 0] create /FirstZnode 「Myfirstzookeeper-app」
Created /FirstZnode

 

獲取數據

它返回指定znode及關聯數據。包含上次修改數據的時間,修改的位置以及有關數據的信息。命令行

語法

get /path 

Example調試

get /FirstZnode

輸出

[zk: localhost:2181(CONNECTED) 1] get /FirstZnode
「Myfirstzookeeper-app」
cZxid = 0x7f
ctime = Mon Feb 27 16:15:47 HKT 2017
mZxid = 0x7f
mtime = Mon Feb 27 16:15:47 HKT 2017
pZxid = 0x7f
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 22
numChildren = 0

 

Watch

當指定的znode或znode的子數據更改時,watch會顯示通知。只能在get命令中設置watchhtm

語法

get /path [watch] 1

Exampleblog

get /FirstZnode 1

輸出

[zk: localhost:2181(CONNECTED) 1] get /FirstZnode 1
「Myfirstzookeeper-app」
cZxid = 0x7f
ctime = Mon Feb 27 16:15:47 HKT 2017
mZxid = 0x7f
mtime = Mon Feb 27 16:15:47 HKT 2017
pZxid = 0x7f
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 22
numChildren = 0

輸出相似於正常的get命令,但它會在後臺等待znode更改。遞歸

 

設置數據

設置指定znode的數據。完成此設置操做後,能夠使用get CLI命令檢查數據

語法

set /path /data

Example

set /SecondZnode Data-updated

輸出

[zk: localhost:2181(CONNECTED) 1] get /SecondZnode 「Data-updated」
cZxid = 0x82
ctime = Mon Feb 27 16:15:47 HKT 2017
mZxid = 0x83
mtime = Mon Feb 27 16:15:47 HKT 2017
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 = Mon Feb 27 16:15:47 HKT 2017
mZxid = 0x84
mtime = Mon Feb 27 16:15:47 HKT 2017
pZxid = 0x7f
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 23
numChildren = 0

 

建立子節點

建立子節點相似於建立新的znode。惟一的區別是子節點znode的路徑也將具備父路徑。

語法

create /parent/path/subnode/path /data

Example

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

Example

ls /MyFirstZnode

輸出

[zk: localhost:2181(CONNECTED) 2] ls /MyFirstZnode
[mysecondsubnode, myfirstsubnode]

  

檢查狀態

狀態描述指定znode的元數據。它包含詳細信息,如時間戳,版本號,ACL,數據長度和子節點znode。

語法

stat /path

Example

stat /FirstZnode

輸出

[zk: localhost:2181(CONNECTED) 1] stat /FirstZnode
cZxid = 0x7f
ctime = Mon Feb 27 16:15:47 HKT 2017
mZxid = 0x7f
mtime = Mon Feb 27 16:15:47 HKT 2017
pZxid = 0x7f
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 23
numChildren = 0

  

刪除Znode

刪除指定的znode並遞歸地刪除其全部子節點。這將發生只有這樣的znode可用。

語法

rmr /path

Example

rmr /FirstZnode

輸出

[zk: localhost:2181(CONNECTED) 10] rmr /FirstZnode
[zk: localhost:2181(CONNECTED) 11] get /FirstZnode
Node does not exist: /FirstZnode

Delete (delete /path) 命令相似於remove命令,只適用於沒有子節點的znode。

相關文章
相關標籤/搜索