まず、飼育係(総括)は何ですか?
飼育係は、オープンソースの分散協調サービスは、主に、クラスタ内の分散アプリケーションシステムの整合性の問題を解決するために使用立つであり、
ファイルシステムベースのディレクトリツリーの方法と同じように小さなZooKeeperの性質に分散ファイル・ストレージ・システムであり、データ記憶装置、
及び、変更を保存するデータの状態を維持し、監視するために使用されるツリー内のノードを効果的に管理することができる
ベースのクラスタ管理データを得ることができるデータの状態の変化を監視することにより、
例えば:均一ネーミングサービス、分散構成管理、負荷分散、分散ロック、分散調整機能。
二、飼育係の機能?
飼育係:クラスターリーダー(リーダー)、からなる多くのフォロワー(フォロワー)
生きている限り、半数以上のように、クラスタノード、飼育係のクラスタが適切にサービスを提供することができるようになります
グローバルデータの一貫性:各サーバがデータの同一のコピーを保持し、クライアント関係なく、サーバに接続された、データは一貫している
信頼性:サーバーのメッセージの1つが受け入れられた場合、サーバは、全ての受信される
一連の順次更新要求、同じクライアントからの更新が実行のために、その要求を送信します
データ更新アトミック:どちらかのデータ更新成功、または失敗し、中間の状態が存在しない(より多くの成功したノードの半分以上)
飼育係クライアント・サーバを確保して、イベントの一定の間隔範囲内で更新された情報を入手、またはサーバーが情報を失敗:リアルタイム
第三に、どのようにビルド、ステップに環境を分散飼育係?
クラスター計画:飼育係は、Hadoopのノードに配備
飼育係は/ optの下に/モジュール/ディレクトリにインストールするパッケージを-extracting
このディレクトリzoo.cfg /opt/module/zookeeper-3.4.10/confの下にリネームzoo_sample.cfgを
開いzoo.cfgファイル、server.1 = hadoop01割り当てを増やす、データ・ストレージ・パスの構成(DATADIR)を変更:2888:3888 ...
このディレクトリの下に作成zkDataが/opt/module/zookeeper-3.4.10/
/ zkDataディレクトリにMYIDを作成しますファイルは、ファイル内のサーバ対応する番号を追加し
、他のマシンに飼育係構成分布、およびファイルMYIDの内容を変更します
四、ZooKeeperの一般的なコマンド(追加、削除、変更、オブザーバー、他のコマンド)
すべての操作コマンド:ヘルプ
[ウォッチ] LSパス:使用LSは内容を表示するコマンドは、現在のznodeに含まれる
ような更新の数として現在のノードデータとデータの確認を見ることができます。LS2パスを[ウォッチ]
一般的な作成:作成するには、
シーケンスが含まれています- sは
(再起動やタイムアウトが消える)、一時: - E
ノードの値を取得します。パスを取得[ウォッチ]は
ノードの特定の値を設定します。設定
ビューは、ノードのステータス:STAT
ノードを削除します。削除
を再帰的にノードを削除:RMRは、
コマンドの履歴を表示:歴史の
再実行指定コマンド履歴のコマンドの数:やり直し
第五に、役割と飼育係のクラスタの役割は、configureに使用シナリオの観測者とどのように?
https://zhuanlan.zhihu.com/p/42067231
リーダー:のみディスパッチャとプロセッサコア、トランザクション要求飼育係クラスタ作業(書き込み)、クラスタ・トランザクションの順序を保証するために、クラスタ内のディスパッチャの各サーバ
フォロワー:処理クライアント非トランザクション(読み取り)要求、転送をリーダーへのトランザクション要求、クラスターリーダー選挙に参加する
クラスタのより大きな量へのオブザーバー:(アクセスは、オブザーバーの役割)を追加することができ
、クラスタの最新の状態を観察するために、オブザーバーの役割をし、これらは、非トランザクション要求のために、オーバー飼育係の状態の同期を変更しますトランザクション要求は、リーダーの処理のためにサーバーに転送されますことは、独立して処理することができ
、投票をクラスタトランザクション処理能力に影響を与えることなく、一般的にクラスタを強化するために非トランザクション機能のために使用される唯一の非トランザクションサービスを提供するのいずれかの形で参加しません
6、飼育係のノードの種類があるのですか?
永続的(永続):クライアントとサーバーが切断された後、作成されたノードがないの削除
、一時(エフェメラル):クライアントとサーバーが切断された後、削除ノードは、自分の作成した
クライアントと飼育係オフ:永続ディレクトリノードを接続を開いた後、ノードがまだ存在する
永続的なシーケンス番号のディレクトリ・ノードをクライアントと飼育係が切断、ノードがまだそこにある、ちょうど飼育係は、ノード名に連番
の一時ディレクトリノード:クライアントと飼育係の切断ノードが削除され
、一時ディレクトリ連番のノード:クライアントをし、飼育係が切断、ノードが削除されますが、飼育係は、ノード名に連番
七、stat構造体のパラメータ?
ノードのトランザクションを作成czxid- zxid
CTIMEを- (1970年開始)ミリ秒数は、作成するのznode
mzxid -のznodeを最後に更新トランザクションがzxid
のmtimeを-ミリ秒数は(1970年以降)に変更最後のznode
最終更新息子pZxid-のznodeをノードzxid
cversion -のznodeの子ノード番号の変更、のznodeの子ノード番号の変更
dataversionを-のznodeのデータの変更番号を(プラスワンは一度変更されます)
ephemeralOwner-ノードが一時的なものである場合、これはのznodeのオーナーのセッションIDです。ノードは、一時的な0でない場合
dataLength-のznodeのデータ長
するnumChildren -ナンバー子ノードのznodeの
の八、してください簡単に選挙機構のZooKeeper?
ハーフメカニズム:その他のクラスタマシンの半分以上が生き残るために、クラスタが利用可能です。奇数のサーバーので、インストールに適した飼育係
ナイン、してください、簡単に飼育係のモニター何原則?
まず第一には、main()のスレッドがされてい
メインスレッド飼育係クライアントで作成し、それは二つのスレッド、LAN通信(connet)のための1つを作成し、1はリスニング(聞き手)のために
登録されたリスナーによって接続スレッドは、イベントを送信します飼育係のために
飼育係リストに追加されている登録済みリスナーのリストに登録されたイベントをリッスン
飼育係、データまたは経路の変更を待機する、それはリスナー・スレッドにメッセージを送信する
リスナー・スレッドの内部には、プロセス()メソッドを呼び出します
テン、してください簡単に飼育係のデータ書き込み処理?
Server1でのZooKeeperへのクライアントの書き込みデータ、書面による要求を送信
Server1にはリーダーではない場合リーダーは、ZooKeeperのサーバーのそれぞれがあるので、それからServer1が、リーダーに転送され、さらに要求を受信します。リーダーは、各書き込み要求サーバーに放送される
リーダーが半分以上(過半数)サーバーのデータがデータ書き込み成功ことを示す、成功した書き込み受け取ったときに情報
のServer1さらに通知クライアントのデータの書き込みが成功し、その後、あなたは全体の動作することを書きます成功