マジセミドライブ
ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。
OSS情報
2020.01.01
【OSS情報アーカイブ】Apache ZooKeeper


※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。
コンテンツ
「Apache ZooKeeper」とは
基本情報
概要
Apache ZooKeeper(アパッチズーキーパー)とは、分散環境運用サポートサービスを提供するコーディネーションエンジンです。各ノード(システム全体)を集中保守管理するための機能を提供します。
基本説明
分散アプリケーションを実装する場合、各分散ノードの設定などに大量の作業が発生してしまいます。ZooKeeperは設定作業などの本質的な部分を取り出し、集中型コーディネーションサービスとしてシンプルなインタフェースを提供します。
ZooKeeperには「設定管理」「名前解決」「同期」「グループサービス」などの利用頻度の高いさまざまなサービスが用意されています。
標準機能として「合意プロトコル」「グループ管理プロトコル」「リーダー選挙プロトコル」「プレゼンスプロトコル」などを利用できます。独自のニーズに対応したサービスの構築も可能です。
Apacheソフトウェア財団のオープンソースプロジェクトで、Hadoopのサブプロジェクトの1つです。Java実装でJVMで動作します。Java/C言語用のAPIが用意されています。
主な特徴
高スループット/低レイテンシー
ZooKeeperが管理する各種データは、ストレージではなくメモリ内に保持されるため、高いスループットと低遅延を実現しています。
高いパフォーマンスを出せるため、大規模分散システムに対応できます。クライアントからのアクセスが読み込み主体の場合には、特に高速で動作できます。
高可用性(マスタ冗長化)
ZooKeeperを複数のサーバにインストールして利用できます。可用性を高め、性能向上も期待できます。ZooKeeperを複数立ち上げると、マスタが自動で選択され各種統括管理を行います。
ZooKeeperマスタノードが何らかの理由で停止した場合には、各ノード間で選挙が行われ、新たなマスタノードが選出されます。
アトミック性
ZooKeeperが管理するデータはアトミックに読み書きが行われます。クライアントからの更新を順番に1つずつ適用します。各ノードごとにアクセス制限を設けることも可能です。
階層的名前空間
ZooKeeperはデータを階層的な名前空間で保存します。複数のサーバに分散している各プロセスは、この名前空間を共有することにより、互いに協調しつつ分散処理を進めます。
ノード間矛盾排除
データ更新はマスタノードのみが行うため、ノード間でデータが矛盾した内容になることがない仕組みになっています。
主な機能
共有設定機能
設定ファイルをZooKeeperサーバに保存し、各インスタンスがZooKeeperに保存されている設定ファイルを取得することで、各インスタンスの設定ファイルが同一であることを保証できます。
分散ロック機能
複数のインスタンスが同時に共有リソースを書き換えないようにするためのロック機能があります。
メンバー取得機能
分散システムの各インスタンスがZooKeeperのエフェメラルノードを登録しておくことにより、分散システム内で利用可能なインスタンスの一覧を取得できます。各クライアントはアクティブ状態のサーバに接続できます。
ウォッチ機能
あるプロセスが、特定のZooKeeperノードをウォッチ対象とすると、そのZooKeeperノードに変更があった場合に、プロセスに対して変更が通知されます。設定ファイルの再ロードトリガーなどに利用できます。
導入事例
分散キーバリューデータベース「HBase」、検索エンジン「SolrCloud」、分散リアルタイムストリーミング処理エンジン「Jubatus」などに採用されています。
主な適用分野として「ディレクトリサービス」「構成管理サービス」「同期サービス」「リーダー選出サービス」「メッセージキューサービス」「エンタープライズサーチシステム」などがあります。
ライセンス情報
Apache ZooKeeperのライセンスは「Apache License 2.0」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。
ダウンロード
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。
この記事のタグ一覧
フリーワード検索
カテゴリー一覧
アクセスランキング
- 🏆ランク1位🏆
【無料で使える】「 OCR 」ツールまとめ - 🏆ランク2位🏆
【無料で使える】「 ドキュメント管理 」ツールまとめ - 🏆ランク3位🏆
【ツール紹介】無料オープンソース「 ビデオ監視 ツール 」まとめ3選 - 🏆ランク4位🏆
【OSS情報】AIネイティブ埋め込みデータベース「 Chroma 」 - 🏆ランク5位🏆
【無料で使える】「 バックアップ 」ツールまとめ - 🏆ランク6位🏆
【OSS情報アーカイブ】Odoo - 🏆ランク7位🏆
【OSS情報アーカイブ】NW.js - 🏆ランク8位🏆
【無料で使える】「 プロジェクト管理 」ツールまとめ - 🏆ランク9位🏆
【ChatGPTプラグイン探訪】「 WebPilot 」〜Web検索プラグイン〜 - 🏆ランク10位🏆
【OSS情報アーカイブ】GanttProject