Zookeeper-cli

提供:Dev Guides
移動先:案内検索

Zookeeper-CLI

ZooKeeperコマンドラインインターフェイス(CLI)は、開発目的でZooKeeperアンサンブルと対話するために使用されます。 デバッグやさまざまなオプションの回避に役立ちます。

ZooKeeper CLI操作を実行するには、まずZooKeeperサーバー(“ bin/zkServer.sh start” _)をオンにしてから、ZooKeeperクライアント(“ bin/zkCli.sh” _)をオンにします。 クライアントが起動したら、次の操作を実行できます-

  • znodeを作成する
  • データを入手する
  • 変更についてznodeを監視する
  • 設定データ
  • znodeの子を作成します
  • znodeの子をリストする
  • ステータスを確認 *znodeの削除/削除

次に、上記のコマンドを1つずつ例を挙げて見てみましょう。

Znodeを作成する

指定されたパスでznodeを作成します。* flag *引数は、作成されたznodeが一時、永続、または順次のいずれであるかを指定します。 デフォルトでは、すべてのznodeは永続的です。

  • Ephemeral znodes (フラグ:e)は、セッションが期限切れになるか、クライアントが切断すると自動的に削除されます。
  • sequential znodes は、znodeパスが一意であることを保証します。
  • ZooKeeperアンサンブルは、znodeパスに10桁のパディングとともにシーケンス番号を追加します。 たとえば、znodeパス_/myappは/myapp0000000001_に変換され、次のシーケンス番号は_/myapp0000000002_になります。 フラグが指定されていない場合、znodeは persistent と見なされます。

構文

create/path/data

サンプル

create/FirstZnode “Myfirstzookeeper-app”

出力

[zk: localhost:2181(CONNECTED) 0] create/FirstZnode “Myfirstzookeeper-app”
Created/FirstZnode
*sequential znode* を作成するには、以下に示すように *-s flag* を追加します。

構文

create -s/path/data

サンプル

create -s/FirstZnode second-data

出力

[zk: localhost:2181(CONNECTED) 2] create -s/FirstZnode “second-data”
Created/FirstZnode0000000023
*Ephemeral Znode* を作成するには、以下に示すように* -eフラグ*を追加します。

構文

create -e/path/data

サンプル

create -e/SecondZnode “Ephemeral-data”

出力

[zk: localhost:2181(CONNECTED) 2] create -e/SecondZnode “Ephemeral-data”
Created/SecondZnode

クライアント接続が失われると、一時znodeが削除されることに注意してください。 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にアクセスするには、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 を設定できます。

構文

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の変更を待機します。 <ここから始めます>

データを設定する

指定されたznodeのデータを設定します。 このセット操作を終了すると、 get CLIコマンドを使用してデータを確認できます。

構文

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の children をリストおよび表示するために使用されます。

構文

ls/path

サンプル

ls/MyFirstZnode

出力

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

ステータスを確認

*Status* は、指定された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およびそのすべての子を再帰的に削除します。 これは、そのような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でのみ機能するという点が異なります。