Modus für hohe Verfügbarkeit

Beim Erstellen eines Dataproc-Clusters können Sie den Cluster in den Hadoop-Modus für hohe Verfügbarkeit versetzen, indem Sie die Anzahl der Master-Instanzen im Cluster angeben. Die Anzahl der Master kann nur bei der Clustererstellung angegeben werden.

Derzeit unterstützt Dataproc zwei Master-Konfigurationen:

  • 1 Master (Standard, keine hohe Verfügbarkeit)
  • 3 Master (Hadoop für hohe Verfügbarkeit)

Unterschiede zwischen dem Hadoop-Standardmodus und dem Hadoop-Modus für hohe Verfügbarkeit

Im seltenen Fall eines Compute Engine-Fehlers wird die VM-Instanz neu gestartet. Die Dataproc-Standardkonfiguration mit einem einzelnen Masterknoten ist für das Wiederherstellen und die Weiterverarbeitung von neuen Aufgaben im oben genannten Fall ausgelegt. Aktive Jobs schlagen jedoch fehl und müssen noch einmal versucht werden. Darüber hinaus ist HDFS erst wieder verfügbar, wenn der einzige NameNode nach einem Neustart wiederhergestellt wurde.

Im HA-Modus werden hohe HDFS-Verfügbarkeit und hohe YARN-Verfügbarkeit konfiguriert, um unterbrechungsfreie YARN- und HDFS-Vorgänge trotz möglicher Ausfälle/Neustarts einzelner Knoten zu ermöglichen.

Beachten Sie, dass das Treiber-/Hauptprogramm der von Ihnen ausgeführten Jobs weiterhin einen Single Point of Failure darstellt, wenn die Richtigkeit des Jobs davon abhängt, dass das Treiberprogramm erfolgreich ausgeführt wird. Über Dataproc Jobs-API gesendete Jobs werden nicht als "hohe Verfügbarkeit" betrachtet und bei einem Ausfall des Master-Knotens, der die entsprechenden Job-Treiberprogramme ausführt, weiterhin beendet. Damit einzelne Jobs, die in einem Cloud Dataproc-Cluster für hohe Verfügbarkeit ausgeführt werden, gegen Ausfälle einzelner Knoten geschützt sind, muss der Job entweder 1) ohne ein synchrones Treiberprogramm ausgeführt werden, oder 2) das Treiberprogramm selbst in einem YARN-Container ausführen und so geschrieben sein, dass Neustarts von Treiberprogrammen unterstützt werden. Ein Beispiel dafür, wie neustartfähige Treiberprogramme in YARN-Containern zum Zweck der Fehlertoleranz ausgeführt werden können, finden Sie unter Spark unter YARN starten.

Instanznamen

Der Standardmaster heißt cluster-name-m; HA-Master heißen cluster-name-m-0, cluster-name-m-1, cluster-name-m-2.

Apache ZooKeeper

In einem Dataproc-Cluster für hohe Verfügbarkeit wird die Zookeeper-Komponente automatisch auf den dortigen Masterknoten installiert. Diese Masterknoten sind alle Bestandteil eines Zookeeper-Clusters, der automatisches Failover für andere Hadoop-Dienste ermöglicht.

HDFS

In einem standardmäßigen Dataproc-Cluster:

  • führt cluster-name-m Folgendes aus:
    • NameNode
    • Secondary NameNode

In einem Dataproc-Cluster für hohe Verfügbarkeit

  • führen cluster-name-m-0 und cluster-name-m-1 Folgendes aus:
    • NameNode
    • ZKFailoverController
  • Alle Master führen JournalNode aus
  • Es gibt keinen sekundären NameNode

Lesen Sie die Dokumentation zu HDFS für hohe Verfügbarkeit, um Details zu Komponenten zu erhalten.

YARN

In einem standardmäßigen Dataproc-Cluster führt cluster-name-m ResourceManager aus.

In einem Dataproc-Cluster mit Hochverfügbarkeit führen alle Master ResourceManager aus.

Lesen Sie die Dokumentation zu YARN für hohe Verfügbarkeit, um weitere Details zu Komponenten zu erhalten.

Cluster für hohe Verfügbarkeit erstellen

gcloud-Befehl

Führen Sie den folgenden Befehl aus, um einen Cluster für hohe Verfügbarkeit mit gcloud dataproc clusters create zu erstellen:
gcloud dataproc clusters create cluster-name \
    --region=region \
    --num-masters=3 \
    ... other args

REST API

Verwenden Sie zum Erstellen eines HA-Clusters die API clusters.create und setzen Sie masterConfig.numInstances auf 3.

Console

Zum Erstellen eines Clusters für Hochverfügbarkeit wählen Sie auf der Dataproc-Seite Create a cluster (Cluster erstellen) unter Cluster mode (Clustermodus) die Option "High Availability (3 masters, N workers)" (Hohe Verfügbarkeit (3 Master, N Worker) aus.