# ZooKeeperのロール

ZooKeeperユーティリティは、構成と状態の管理および分散調整サービスを、Big Data DiscoveryクラスタのDgraphノードに提供します。クラスタ内のDgraphノードによる問合せ処理の高可用性を保証します。

ZooKeeperは、CDHパッケージの一部です。CDHパッケージは、BDDクラスタ・デプロイメントにおけるすべてのCDHノードにインストールされていることが前提です。ZooKeeperがBDDクラスタにおけるすべてのCDHノードにインストールされていても、これらのノードのすべてでは実行されていない可能性があります。クラスタ化されたDgraphデプロイメントの可用性を確保するには、ZooKeeperインスタンスを実行するための奇数個(3個以上)のCDHノードを構成します。これにより、ZooKeeperのシングル・ポイント障害を回避します。

ZooKeeperには次の特性があります。

- これは、分散調整サービスのセットを実現する共有情報リポジトリです。ノード間の同期、イベント通知および調整が確実に行われます。接続やDgraphホスティング・ノードに障害が発生しても、通信と調整のメカニズムは引き続き機能します。
- Dgraphホスティング・ノード間の通信が実現され、これらのノードのいずれかで障害が発生すると、ノードがDgraphクラスタに再び参加するまで、リクエストが他のアクティブなDgraphノードに送信されます(これが該当するのは、ZooKeeperの3個以上のインスタンスがデプロイメントで実行されている場合です)。
- 複数のDgraphノード間において通信を実現します。現在のリーダーDgraphノードに障害が発生した場合にDgraphリーダー・ノードをDgraphクラスタで選出する処理を制御します。新しく選出されたリーダーDgraphノードにより、最新バージョンの索引を識別し、ZooKeeperを使用して、現在のバージョンの索引を他のノードに通知します。

要約すると、実行するためには、ZooKeeperではそのホスティング・ノードの大部分がアクティブである必要があります。そのため、デプロイされたBig Data Discoveryクラスタにおいて奇数個(3個以上)のCDHノード上でZooKeeperを実行することをお薦めします。デプロイメント・スクリプトを実行している場合、インストール時にこれを確認できます。