ビデオ: HBase Tutorial | Introduction to HBase | What is HBase? | HBase Tutorial for Beginners 2024
NoSQLデータベースの大規模なクラスタは、扱いにくいものです。 Apache Zookeeperを救助する!どのノードがクラスタ内にあるかを把握し、どのデータを管理しているか、マスタが故障したときに新しいマスタが選択されることを確実にすることは容易ではありません。したがって、大規模分散システムの調整は非常に困難です。 Hadoopと分散型NoSQLデータベースの両方で、クラスタ全体の構成を管理する方法が必要です。また、このプロセスは、システム全体で単一障害点にならないように、可用性が高くなければなりません。
<! - 1 - >
これはApache Zookeeperが入る場所です。Zookeeperは、トランザクション的に一貫した分散型のコーディネーションサービスを提供します。Zookeeperをクラスタ管理に使用する製品:
Apache Hadoop
-
Solr Cloud
-
Neo4j
-
Accumulo
-
HBase
-
Rackspace
-
Zynga
-
Yahoo! (いくつかのサービスについて)
-
<! - 2 - >
Zookeeperは、コンピュータファイルシステムに似たインメモリ階層構造を提供します。この構造は現在のZookeeperマスターによって管理され、クラスタ内の他のノード間で複製されます。 Zookeeperクラスタは
Zookeeper e nsembleと呼ばれます。 マスターだけがストレージへの更新(書き込み)を管理します。これらの変更は、ディスクにチェックポイントされて耐久性を持たせ、次にアンサンブル内の他の動物園のインスタンスに複製されます。
<! - 3 - >
これらのサービスは、クラスタ構成データをZookeeperに格納します。その中には、データベースの断片のキー範囲も格納されているものがあります。これにより、Zookeeperを使用するNoSQLデータベースを利用しているクライアントは、アンサンブル内のZookeeperサーバーと通信できます。このようにして、クライアントは、どのNoSQLサーバーが関心のあるデータを保持しているかを検出できます。どのノードがどのキー範囲を格納するかを調べると、NoSQLサーバーの負荷が最小限に抑えられます。 1つのNoSQLノードを実際にデータを保持するノードに割り当てます。
Zookeeperのデータストレージを一時的なストレージ(サービスの再開を超えて保存されないストレージ)に使用することもできます。これはセッションやその他のランタイムデータを保存するのに便利です。
Zookeeperサーバーは、この一時記憶域を使用して、マスタに障害が発生した場合に引き継ぐ人を決定します。各サーバーは、キースペースに番号の付いたエフェメラルzノード(ストレージファイル)を作成します。動物園マスター(指導者)がハードウェア障害を被る場合、シーケンス内の次のzノードの所有者がマスターになります。これは洗練されたソリューションであり、すべてのサーバーが新しいマスターを選択するために数秒間お互いに熱心にコミュニケーションする「群」効果を回避します。
Zookeeperは、調整されたシステム管理と高可用性に固有の問題に対する優れたJavaソリューションです。これを使用して、メッセージングサービスなどの可用性の高いサービスを実装できます。したがって、新しい分散サービスを作成する必要がある場合は、Zookeeperの使用を検討してください。