Zookeeper-cli
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でのみ機能するという点が異なります。