欠失はZooKeeperのクライアント・ノードを変更して再検索zkCli.sh

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の

 

おすすめ

転載: www.cnblogs.com/gavin5033/p/12667524.html