hbase-site.xmlの動物園の飼育係のクォーラム設定は正確には何ですか?
2 に答える
hbase-default.xmlで説明されているように、設定は次のとおりです。
ZooKeeperクォーラム内のサーバーのコンマ区切りリスト。たとえば、「host1.mydomain.com、host2.mydomain.com、host3.mydomain.com」のようになります。デフォルトでは、これはローカルおよび疑似分散動作モードのlocalhostに設定されています。完全に分散されたセットアップの場合、これはZooKeeperクォーラムサーバーの完全なリストに設定する必要があります。HBASE_MANAGES_ZKがhbase-env.shに設定されている場合、これはZooKeeperを起動/停止するサーバーのリストです。
これが実際に行うことは、ここでエドワードJ.ユンによって答えられました。わかりやすくするために、私の側で編集します。
Apache Zookeeperは、GoogleのChubbyなどの分散アプリケーション向けの調整サービスです。多くのプロジェクトでzookeeperが使用されており、私たち(Apache Hama)も、Bulk Synchronous ParallelComputingFrameworkのバリア同期にzookeeperを使用しています。
今日は、クラスに名前を付けるために、Zookeeperプロジェクトのパクシと動的クォーラム機能について詳しく調査しました
org.apache.hama.zookeeper.QuorumPeer
。ドキュメントが不十分なため(http://hadoop.apache.org/zookeeper/docs/r3.0.0/api/index.html)、「クォーラム」の意味がわかりませんでした。この用語はやや奇妙でした。私に。ただし、「org.apache.hama.zookeeper.QuorumPeer」が固有名です!! xDでは、クォーラムとは何ですか?なぜクォーラムが必要なのですか?
ウィキペディアによると、クォーラムは、そのグループのビジネスを遂行するために必要な審議機関のメンバーの最小数です。通常、これはそこにいると予想される人々の大多数ですが、多くの団体はより低いまたはより高い定足数を持っている可能性があります。
ご存知のように、フォールトトレラントメカニズムは分散システムの重要な機能の1つです。クォーラムアルゴリズムは、スプリットブレイン状態を防ぐために使用されます。スプリットブレイン状態が発生すると、クォーラムアルゴリズムに従って、動物園の飼育係が「プライマリパーティション」と「セカンダリパーティション」を決定します。次に、プライマリグループのサーバーがユーザーの要求を受信して処理し、セカンダリグループのサーバーが読み取り専用になります。
このシステムはいつスプリットブレイン状態から回復しますか?それらが再び1つのパーティションにマージされたとき。内部的には、zookeeperはPaxosの代わりにアトミックブロードキャストプロトコルを使用します。
彼が提示しようとしていた概念を私が誤訳した場合に備えて、元のバージョンも読む必要があります。
Apache Zookeeperのクォーラムメカニズムについての私の理解は、いくつかの事前定義されたホスト間でレプリケーションクォーラムを明示的に定義することです。このクォーラムが満たされない場合、Zookeeperがそれらをプライマリパーティションと再統合できるようになるまで、一致しないパーティションはセカンダリパーティションに分割されます。
これにより、Hadoopの結果整合性モデルがさらに細かくなります。一方、HBaseは現在、Zookeeperをそのコードとさらに統合する過程にあります。
hbase-default.xmlファイルから:
ZooKeeperクォーラム内のサーバーのコンマ区切りリスト。たとえば、「host1.mydomain.com、host2.mydomain.com、host3.mydomain.com」のようになります。デフォルトでは、これはローカルおよび疑似分散動作モードのlocalhostに設定されています。完全に分散されたセットアップの場合、これはZooKeeperクォーラムサーバーの完全なリストに設定する必要があります。HBASE_MANAGES_ZKがhbase-env.shに設定されている場合、これはZooKeeperを起動/停止するサーバーのリストです。
そして、「はじめに」の要件セクションから:
HBaseは、リリース0.20.0の時点でZooKeeperに依存しています。HBaseは、ルートテーブルの場所、現在のマスターが誰であるか、およびZooKeeperのクラスターに現在参加しているリージョンを保持します。クライアントとサーバーは、他のことを行う前に、ZooKeeperクォーラムの場所を知っている必要があります(通常、これらの情報は、CLASSPATHで提供される構成から取得します)。デフォルトでは、HBaseが単一のZooKeeperインスタンスを管理します。スタンドアロンモードと疑似分散モードでは、通常これで十分ですが、完全分散モードの場合は、ZooKeeperクォーラムを構成する必要があります(詳細は以下を参照)。
お役に立てば幸いです。