zkCli.sh
binディレクトリでのZooKeeperクライアントがあるzkCli.sh
./zkCli.sh -timeout 5000 -server 127.0.0.1:2181 ZooKeeperのクライアントとのリンクを確立します
タイムアウト:ミリ秒単位のタイムアウト
R:読み取り専用モード、ノードが壊れた場合、サービスはまた、リードを提供することができます
例:
./zkCli.sh -timeout 5000 -server 127.0.0.1:2181
1 zhangliuningdeMacBook-プロ:ビンシェリー$ ./zkCli.sh -timeout 5000 -server 127.0.0.1:2181 2は127.0.0.1:2181への接続 3 2016年8月27日15:07:04036 [MYID:] - INFO [メイン2016年2月6日03:18 GMT上に構築された= 3.4.8--1 zookeeper.version、: - :クライアント環境100] @環境 4 2016年8月27日15:07:04039 [MYID:] - INFO [メイン:環境@ 100] -クライアント環境:host.name = 192.168.0.105 5 2016年8月27日15:07:04039 [MYID:] - INFO [メイン:環境@ 100] -クライアント環境:のjava.version = 1.8。 0_71 6 2016年8月27日15:07:04041 [MYID:] - INFO [メイン:100 @環境] -クライアント環境:java.vendor =米国Oracle Corporation 7 2016年8月27日15:07:04041 [MYID:] java.home = /ライブラリ/ Javaの/ JavaVirtualMachines / jdk1.8.0_71.jdk /コンテンツ/ホーム/ JRE:クライアント環境- :[100 @環境メイン] - INFO 8 2016年8月27日15:07:04042 [MYID:] - INFO [メイン:環境@ 100] - クライアント環境:のjava.class.path = /ユーザ/シェリー/アプリケーション/ ZK1 / binに/../ビルド/クラス:/ユーザー/シェリー/アプリケーション/ ZK1 / binに/../ビルド/ libに/ * jarファイル:/ユーザー/シェリー/アプリケーション/ ZK1 / binに/../ libに/ SLF4J-log4j12-1.6.1.jar: /Users/sherry/Applications/zk1/bin/../lib/slf4j-api-1.6.1.jar:/Users/sherry/Applications/zk1/bin/../lib/netty-3.7.0.Final。瓶:/ユーザー/シェリー/アプリケーション/ ZK1 / binに/../ libに/ log4jの-1.2.16.jar:/ユーザー/シェリー/アプリケーション/ ZK1 / binに/../ libに/ jline-0.9.94.jar: /Users/sherry/Applications/zk1/bin/../zookeeper-3.4.8.jar:/Users/sherry/Applications/zk1/bin/../src/java/lib/*.jar:/Users/sherry /Applications/zk1/bin/../conf: 9 2016年8月27日15:07:04042 [MYID:] - INFO [メイン:100 @環境] -クライアント環境:java.library.pathに= /ユーザ/シェリー/ライブラリ/ Javaの/拡張機能:/ライブラリ/ Javaの/拡張機能:/ネットワーク/ライブラリ/ Javaの/拡張機能:/システム/ライブラリ/ Javaの/拡張します。/ usr / lib / javaの:. 10 2016-08-27 15:07:04042 [MYID:] - INFO [メイン:100 @環境] -クライアント環境:java.io.tmpdirの=は/ var /フォルダ/ _n / d05bph5x5bl6k5p0pkx2g66m0000gn / T / 11 2016-08- 27 15:07:04042 [MYID:] - INFO [メイン:100 @環境] -クライアント環境:てjava.compiler = <NA> 12 2016年8月27日15:07:04042 [MYID:] - INFO [メイン: 100 @環境] -クライアント環境:os.name =のMac OS X 13 2016年8月27日15:07:04042 [MYID:] - INFO [メイン:100 @環境] -クライアント環境:os.arch = x86_64版 14 2016年8月27日15:07:04042 [MYID:] - INFO [メイン:100 @環境] -クライアント環境:os.version = 10.11.5 15 2016-08-27 15:07:04043 [MYID:] - INFO [メイン:100 @環境] -クライアント環境:user.name =シェリー 16 2016年8月27日15:07:04043 [MYID:] - INFO [メイン:100 @環境] -クライアント環境:のuser.home = /ユーザ/シェリー 17 2016年8月27日15:07:04043 [MYID:] - INFO [メイン:100 @環境] -クライアント環境:はuser.dir = /ユーザ/シェリー/アプリケーション/ ZK1 / binに 18 2016年8月27日15:07:04044 [MYID:] - INFO [メイン:ZooKeeperの@ 438] -クライアントの接続を開始する、のconnectString = 127.0.0.1:2181 SESSIONTIMEOUT = 5000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@531d72ca 19ようこそZooKeeperのへ! 20 2016年8月27日15:07:04081 [MYID:] - INFO [メインSendThread(127.0.0.1:2181):ClientCnxn $ SendThread @ 1032] -オープニングサーバー127.0.0.1/127.0.0.1:2181へのソケット接続。SASLを使用して認証しようとはしません(不明なエラー) 21 JLineサポートが有効になっている ClientCnxn $ SendThread @ 876: - 07:::04187 [MYID] INFO [メインSendThread(127.0.0.1:2181)22 2016年8月27日15 ] -セッション開始ソケット127.0.0.1/127.0.0.1:2181に確立された接続、 23 [ZK:127.0.0.1:2181(CONNECTING)0] 2016年8月27日15:07:04245 [MYID:] - INFO [メイン-SendThread(127.0.0.1:2181):ClientCnxn $ SendThread @ 1299] -サーバー127.0.0.1/127.0.0.1:2181上のセッション確立完了し、セッションID = 0x156cacb918b0000、交渉されたタイムアウト= 5000 24 25 WATCHER :: 26 27 WatchedEvent状態:SyncConnectedタイプ:なしパス:ヌル
上記、および接続が確立され、私たちのZooKeeperを表現するために、あなたは、ZooKeeperのコマンドと対話することができます
H:ヘルプリスト
時間 ZooKeeperのホスト-server:ポートは引数をcmdを STATパス[ウォッチ] 、設定されたパスデータ[バージョン] LSパス[観る] delquotaを[-n | -b]パス LS2パス[ウォッチ] SETACLパスACL SETQUOTA -n | -bヴァルパス 履歴 のREDO cmdnoの printwatches ON | OFF 削除パス[バージョン] 同期パス listquotaパス RMRパス GETパス[ウォッチ] 作成[-s] [-e]パスデータがACL addauthスキームの認証が 終了し GETACLパス 近い 接続ホスト:ポートを
表示コマンドを実行することができます
コマンドおよびデータベースと同様の分類は、4つのカテゴリに分けることができますCRUD
ZooKeeperのデータ構造:
ほとんどの時間は、私たちのチームのZooKeeper操作は、ノードであるCRUD
よく使用するコマンド:
関連の説明書を照会
LSパス:パス内のリストファイルを
[ZK:127.0.0.1:2181(CONNECTED)4] LS / [飼育係]
上:リストルートディレクトリノード内のすべてのファイル、現在のZooKeeperノードに付属している唯一のシステムです
STATパス:ビューのノードのステータス
[ZK:127.0.0.1:2181(CONNECTED)6] STAT /飼育係 cZxid = 0x0の ctimeの木= 1月1日午前8時00分00秒CST 1970 mZxid = 0x0の 最終変更時刻=木1月1日午前8時00分00秒CST 1970 pZxid = 0x0の cversion = -1 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0の データ長= 0 するnumChildren = 1
cZxid:ノードIDトランザクションを作成します
pZxid:子のリストは、最後に述べたID上記の取引に変更された
ノードバージョン:cversion
dataCersion:データのバージョン番号
aclVerson:ACL許可バージョン
......
GETパス:コンテンツ指定されたノードの取得
LS2パスを:パスノードリストを子ノードおよびステータス情報の
作成指示
[-S] [-e]パスデータACLを作成
1 [ZK:127.0.0.1:2181(CONNECTED)10] / Node_1の123作成 2作成/ Node_1のを
上:ルート・ノード123で作成されたnode_1のは、データを運びます
使用は、get / node_1のに成功したノードとそれらのデータを追加するかどうかを確認します
[zk: 127.0.0.1:2181(CONNECTED) 15] create -e /node_1/node_1_1 234 Created /node_1/node_1_1
これは、この新しい一時的なノードを参照してくださいstatコマンドを使用して、一時的なノード(-e)と、234のキャリーデータを作成し、
[ZK:127.0.0.1:2181(CONNECTED)16] STAT / Node_1の/ node_1_1 cZxid = 0x200000003 のctime = 8月27日(土)午後3時27分30秒CST 2016 mZxid = 0x200000003 のmtime = 8月27日(土)午後3時27分30秒CST 2016 pZxid = 0x200000003 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x156cacb918b0000 データ長= 3 するnumChildren = 0
それは0x0のの恒久的な値であればephemeralOwner値は、一時的なノードのバージョン番号、ノード0ではありません
1 [ZK:127.0.0.1:2181(CONNECTED)1] -s / Node_1の/ node_1_1 234作成 2作成/ Node_1の/ node_1_10000000001
我々はノード名を指定したものの、ノードのシーケンスを作成するために、-sパラメータを使用することによりnode_1_1ですが、私たちが繰り返している場合、実際には、名前は、node_1_10000000001です。
[ZK:127.0.0.1:2181(CONNECTED)2] -s / Node_1の/ node_1_1 234作成 作成/ Node_1の/ node_1_10000000002
結果として
この機能は、我々は、分散環境での主キージェネレータを生成するためにそれを使用することができます
-sと-eを同時に使用することができます
終了:
終了
[ZK:127.0.0.1:2181(CONNECTED)19]終了 辞職を... 2016年8月27日15:29:44760 [MYID:] - INFO [メイン:ZooKeeperの@ 684] -セッション:0x156cacb918b0000が閉じ 2016-08-を27 15:29:44763 [MYID:] - INFO [メインEventThread:ClientCnxn $ EventThread @ 519] - EventThreadがセッションのためにシャットダウン:0x156cacb918b0000
あなたは、再びこの時間をログLS / node_1のを実行し、その子ノードが空で見つかった、行方不明node_1_1の子ノードを作成した場合、それが作成されているので、それは時間が指定された前に、私たちは一時的なノードを作成しています。クライアントセッションが終了すると、一時的なノードが削除されます。
指定された関連を修正するには:
セットパスデータ[バージョン]
[ZK:127.0.0.1:2181(CONNECTED)14]セット/ Node_1の998 cZxid = 0x200000002 のctime =土8月27日午前15時24分39秒CST 2016 mZxid = 0x20000000a のmtime =土8月27日午前15時38分40秒CST 2016 pZxid = 0x200000008 cversion = 5 dataVersion = 2 aclVersion = 0 ephemeralOwner = 0x0の データ長= 3 するnumChildren = 3
私たちは何度か変更した場合、あなたはあるdataVersion、データのバージョンがあります、変更がノンストップ(増分)に発生しました
私たちはバージョン番号を指定するには、手動で時刻を設定する場合は、それ以外の場合はエラーになり、一貫性の上で結果をチェックアウトする必要があります。
これは、我々は他の人の前に変更されていないデータを修正することを確実にするために、私たちの時間にノードデータを変更するために使用することができます。人々が改定場合ので、私たちは、この改正成功しません
[削除]コマンド:
削除パス[バージョン]
指定されたノードのデータを削除し、そのバージョンのパラメータを指定の役割がセットに合意します
delete /node_1/node_1_10000000001
全ノード全体を削除
注:唯一の削除ノードは子ノードが含まれていない削除、ノードを削除したい場合は、子ノードが含まれている、コマンドRMRを使用
RMR / node_1の