高可用性モード

Dataproc クラスタを作成するときに、クラスタ内のマスター インスタンスの数を指定することにより、クラスタを Hadoop 高可用性(HA)モードにすることができます。マスターの数はクラスタの作成時にしか指定することができません。

現在、Dataproc は次の 2 つのマスター構成をサポートしています。

  • 1 マスター(デフォルト、非 HA)
  • 3 マスター(Hadoop HA)

デフォルトと Hadoop 高可用性モードの違い

予期せぬ Compute Engine 障害が発生した場合は、Dataproc インスタンスがマシン再起動の影響を受けます。Dataproc のデフォルトの単一マスター構成は、このようなケースでは復旧して新しい作業の処理を継続するように設計されていますが、処理中のジョブはやむなく中断するため再試行する必要があり、HDFS は単一の NameNode が完全に復旧するまでアクセスできなくなります。

HA モードでは、単一ノードの障害や再起動で YARN と HDFS のオペレーションが中断しないように、HDFS 高可用性YARN 高可用性が構成されます。

ジョブの正確性がドライバ プログラムが正常に動作しているかどうかに依存している場合は、実行中のジョブのドライバ / メイン プログラムが潜在的な単一障害点を表している場合があるので注意してください。Dataproc Jobs API 経由で送信されたジョブは、「高可用性」と見なされないため、対応するジョブ ドライバ プログラムを実行しているマスターノードの障害発生時に中断される可能性があります。個別のジョブが HA Cloud Dataproc クラスタを使用して単一ノード障害から復旧するためには、ジョブが 1) 同期ドライバ プログラムを使用せずに動作するか、2) YARN コンテナ内でドライバ プログラムを直接実行し、ドライバ プログラムの再起動を処理するように作られている必要があります。耐障害性を確保するために YARN コンテナ内で再起動可能なドライバ プログラムを実行する方法の例については、YARN 上での Spark の起動をご覧ください。

インスタンス名

デフォルト マスターの名前は cluster-name-m で、HA マスターの名前は cluster-name-m-0cluster-name-m-1cluster-name-m-2 です。

Apache ZooKeeper

HA Dataproc クラスタでは、クラスタのマスターノードに自動的に Zookeeper コンポーネントがインストールされます。すべてのマスターが ZooKeeper クラスタに参加するため、他の Hadoop サービスの自動フェイルオーバーが有効になります。

HDFS

標準 Dataproc クラスタの場合:

  • cluster-name-m は以下のことを実行します。
    • NameNode
    • セカンダリ NameNode

高可用性 Dataproc クラスタの場合:

  • cluster-name-m-0cluster-name-m-1 は以下のことを実行します。
    • NameNode
    • ZKFailoverController
  • すべてのマスターが JournalNode を実行します。
  • セカンダリ NameNode は存在しません。

コンポーネントに関する詳細については、HDFS 高可用性のドキュメントをご覧ください。

YARN

標準の Dataproc クラスタでは、cluster-name-m が ResourceManager を実行します。

高可用性 Dataproc クラスタでは、すべてのマスターが ResourceManager を実行します。

コンポーネントの詳細については、YARN 高可用性のドキュメントをご覧ください。

高可用性クラスタの作成

gcloud コマンド

gcloud dataproc clusters create を使用して HA クラスタを作成するには、次のコマンドを実行します。
gcloud dataproc clusters create cluster-name \
    --region=region \
    --num-masters=3 \
    ... other args

REST API

HA クラスタを作成するには、clusters.create API を使用し、masterConfig.numInstances3 に設定します。

コンソール

HA クラスタを作成するには、Dataproc の [クラスタの設定] パネルの [クラスタタイプ] セクションで、[高可用性(マスター 3 個、ワーカー N 個)] を選択します。クラスタを作成する をご覧ください。