Apache ZooKeeper
Apache ZooKeeper(アパッチ ズーキーパー)は Apacheソフトウェア財団のオープンソースプロジェクトで、大規模分散システムでよく利用される、設定情報の集中管理や名前付けなどのサービスを提供するソフトウェアである。最初はHadoopのサブプロジェクトの一つであったが、現在はトップレベルプロジェクトの一つになっている。
ZooKeeperのアーキテクチャでは、高可用性を冗長サービスにより提供している。つまり、クライアントはあるZooKeeperノードへの問い合わせが失敗したら、他のノードに問い合わせることができる。
データの更新は一つのマスターノードだけが行うようになっているので、データがノード間で矛盾した内容になることはない(ただし、最新のデータでない可能性はある)。
更新を担当するマスターノードが何らかの理由で停止した場合には、各ノード間でリーダー選出を行い、新たな更新ノードが選ばれる。
ZooKeeperはデータを階層的な名前空間に保存しているが、これはファイルシステムやトライ木のデータ構造によく似ている。クライアントはこのノードに読み書きを行うことによって、設定情報共有などのサービスを提供する。
ZooKeeperはen:RackspaceやYahoo!などの企業で、またSolrのようなオープンソースのエンタープライズサーチシステムで使用されている。