高可用性の実現方法

このトピックでは、BDDクラスタ・デプロイメントが問合せ処理において高可用性を確保する方法について説明します。

重要: ユーザーは任意の数のノードを持つことができるので、BDDクラスタ・デプロイメントは、BDDクラスタが十分な数のDgraphノードおよびHadoopノードにデプロイされており、3つ以上のZookeperインスタンスが各Hadoopノードで実行されている場合にのみ、高可用性を提供します。このトピックでは、高可用性を可能にするクラスタ動作について説明し、システム管理者がサービス復元措置を実行する必要があるインスタンスについて言及します。

次の3つの項では、高可用性を提供するためのBDDクラスタの動作について説明します。

注意: このトピックでは、複数のDgraphの実行中インスタンスがあるBDDデプロイメントについて説明します。単一ノードにBDDをデプロイできますが、このようなデプロイメントは開発環境でのみ機能します。BDDでの問合せ処理の高可用性が保証されないためです。すなわち、1つのノードのみが単一DgraphインスタンスをホストしているBDDデプロイメントでは、Dgraphノードの障害によりDgraphプロセスが停止します。

StudioをホストしているWebLogic Serverノードの可用性

WebLogic Serverノードが停止すると、Studioも停止します。BDDクラスタが、外部ロード・バランサを利用し、Studioを起動する複数のWebLogic Serverノードで構成されているかぎり、これによりBig Data Discoveryの操作は中断されません。

StudioをホストしているWebLogic Studioノードが失敗した場合、(外部ロード・バランサを使用する) BDDクラスタはこれの使用を停止し、再起動するまで他のStudioノードに依存します。

Dgraphノードの可用性

Hadoop (CDH、HDPまたはMapR)ノードのサブセットでZooKeeper Ensembleを実行すると、Dgraphクラスタのノードとサービスにおいて高可用性が確保されます。
  • リーダーDgraphの障害。データベースのリーダーDgraphがオフラインになると、BDDクラスタはZookeeperおよびDgraph Gatewayに基づき、新規リーダーを選出します。その後に更新の送信を開始します。このステージの間、フォロワDgraphでは引き続きデータの一貫したビューを維持し、問合せに応答します。bdd-adminスクリプトを使用して、このノードを手動で再起動します。リーダー・ロールを持ったDgraphが再起動してクラスタに参加すると、フォロワDgraphの1つになります。また、クラスタが新規リーダーを指名する必要がある前に、リーダーDgraphが再起動してクラスタに参加することもあります。この場合、Dgraphは引き続きリーダーの役割を果たします。
  • フォロワDgraphの障害。フォロワDgraphの1つがオフラインになると、BDDクラスタは、使用可能な他のDgraphへのリクエストのルーティングを開始します。bdd-adminスクリプトを使用して、このノードを手動で再起動します。ノードが再起動されると、ノードはクラスタに再び参加し、クラスタはそのルーティング情報をそれに応じて調整します。

ZooKeeperインスタンスの可用性

ZooKeeperインスタンス自体を高可用性にする必要があります。次の文では、要件について詳細に説明します。
  • ZooKeeperインスタンスをホストするように、BDDクラスタ・デプロイメントにおける各Hadoopノードをデプロイメントの際にオプションで構成できます。ZooKeeperインスタンスで可用性を確保するには、独自のクラスタ(Ensembleと呼ばれる)でインスタンスをデプロイすることをお薦めします。デプロイメントの際、ZooKeeperインスタンスをホストするようにHadoopノードのサブセットを構成することをお薦めします。大部分のEnsembleが実行中であるかぎり、ZooKeeperサービスはBDDクラスタで使用されます。ZooKeeperでは過半数が必要であるため、ZookeeperインスタンスをホストするHadoopノード数は3以上の奇数であることが最適です。
  • ZooKeeperインスタンスをホストしているHadoopノードは、ZooKeeperプロセス稼働時間を保証する責任を負います。BDDがデプロイされるとCDHノードはZooKeeperを起動し、実行が停止すると再起動します。
  • ZooKeeperを実行するために3個以上のHadoopノードを構成していない場合、ZooKeeperはシングル・ポイント障害となります。ZooKeeperが失敗すると、BDDが提供するデータ・セットはすべて使用できなくなります。この状況からリカバリするには、障害ZooKeeperを実行していたHadoopノードを再起動または再配置する必要があります(必要な措置は障害の特性によって異なります)。