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 sind so konfiguriert, dass unterbrechungsfreie YARN- und HDFS-Vorgänge trotz Ausfälle/Neustarts einzelner Knoten.
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
undcluster-name-m-1
Folgendes aus:- NameNode
- ZKFailoverController
- Alle Master führen JournalNode aus
- Es gibt keinen sekundären NameNode
Sehen Sie sich die Informationen zur HDFS-Hochverfügbarkeit an. Dokumentation zu den Komponenten.
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.
Weitere Informationen zu den Komponenten finden Sie in der Dokumentation zu YARN für hohe Verfügbarkeit.
Cluster für hohe Verfügbarkeit erstellen
gcloud-Befehl
So erstellen Sie einen Cluster für hohe Verfügbarkeit mit gcloud Dataproc-Cluster erstellen führen Sie den folgenden Befehl aus:
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
Wählen Sie zum Erstellen eines HA-Clusters im Abschnitt „Cluster einrichten“ des Dataproc-Bereichs Cluster erstellen die Option „Hohe Verfügbarkeit“ (3 Master, N Worker) aus.