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

  • Compute Engine-Fehler: Im seltenen Fall eines unerwarteten Compute Engine-Fehlers wird die Dataproc-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 Hochverfügbarkeitsmodus werden HDFS-Hochverfügbarkeit und YARN-Hochverfügbarkeit konfiguriert, um unterbrechungsfreie YARN- und HDFS-Vorgänge trotz möglicher Ausfälle/Neustarts einzelner Knoten zu ermöglichen.

  • Job-Treiber-Beenden: 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.

  • Zonenausfall: Wie bei allen Dataproc-Clustern befinden sich alle Knoten in einem Cluster für hohe Verfügbarkeit in derselben Zone. Wenn ein Ausfall alle Knoten in einer Zone betrifft, wird der Ausfall nicht behoben.

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 mit Hochverfü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 Clusters für Hochverfügbarkeit die API clusters.create und setzen Sie masterConfig.numInstances auf 3.

Console

Wählen Sie zum Erstellen eines Clusters für Hochverfügbarkeit auf der Dataproc-Seite Cluster erstellen im Bereich „Clustertyp“ des Bereichs „Cluster einrichten“ die Option „Hochverfügbarkeit“ (3 Master, N Worker) aus.