Beim Erstellen eines Managed Service for Apache Spark-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 Managed Service for Apache Spark zwei Master-Konfigurationen:
- 1 Master (Standard, keine hohe Verfügbarkeit)
- 3 Master (Hadoop für hohe Verfügbarkeit)
Vergleich des Standardmodus und des Hadoop-Modus für hohe Verfügbarkeit
Compute Engine-Fehler:Im seltenen Fall eines unerwarteten Compute Engine-Fehlers wird die Managed Service for Apache Spark-Instanz neu gestartet. Die Standardkonfiguration mit einem einzelnen Masterknoten für Managed Service for Apache Spark ist für das Wiederherstellen und die Weiterverarbeitung von neuen Aufgaben in solchen Fällen 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 Modus für hohe Verfügbarkeit 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 die Managed Service for Apache Spark Jobs API gesendete Jobs werden nicht als „Hochverfü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 Managed Service for Apache Spark-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 Managed Service for Apache Spark-Cluster für hohe Verfügbarkeit wird die Zookeeper-Komponente automatisch auf den Clustermastern installiert. Diese Masterknoten sind alle Bestandteil eines Zookeeper-Clusters, der automatisches Failover für andere Hadoop-Dienste ermöglicht.
HDFS
In einem standardmäßigen Managed Service for Apache Spark-Cluster:
cluster-name-mführt Folgendes aus:- NameNode
- Secondary NameNode
In einem Managed Service for Apache Spark-Cluster für hohe Verfügbarkeit:
cluster-name-m-0undcluster-name-m-1führen 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 Managed Service for Apache Spark-Cluster führt cluster-name-m ResourceManager aus.
In einem Managed Service for Apache Spark-Cluster für hohe Verfü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
clusters.create
API, setzen Sie masterConfig.numInstances
auf 3.
Console
Wählen Sie zum Erstellen eines HA-Clusters im Abschnitt „Clustertyp“ des Bereichs „Cluster einrichten“ auf der Seite Cluster erstellen von Managed Service for Apache Spark die Option „Hohe Verfügbarkeit (3 Master, N Worker)“ aus.