Wenn Sie einen Managed Service for Apache Spark-Cluster erstellen, können Sie den Cluster in den Hadoop-Hochverfügbarkeitsmodus versetzen, indem Sie die Anzahl der Masterinstanzen 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-Hochverfügbarkeitsmodus
Compute Engine-Fehler: Im seltenen Fall eines unerwarteten Compute Engine-Fehlers werden Managed Service for Apache Spark-Instanzen neu gestartet. Die standardmäßige Single-Master-Konfiguration für Managed Service for Apache Spark ist so konzipiert, dass sie in solchen Fällen wiederhergestellt wird und die Verarbeitung neuer Aufgaben fortsetzt. Laufende Jobs schlagen jedoch zwangsläufig fehl und müssen wiederholt werden. HDFS ist erst dann wieder zugänglich, wenn der einzelne NameNode beim Neustart vollständig wiederhergestellt ist. Im Hochverfügbarkeitsmodus sind die HDFS-Hochverfügbarkeit und die YARN-Hochverfügbarkeit so konfiguriert, dass trotz Ausfällen oder Neustarts einzelner Knoten unterbrechungsfreie YARN- und HDFS-Vorgänge möglich sind.
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 Managed Service for Apache Spark-Clustern befinden sich alle Knoten in einem Hochverfügbarkeitscluster 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 mit Hochverfügbarkeit wird die Zookeeper-Komponente automatisch auf den Clustermasterknoten 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:
- führt
cluster-name-mFolgendes aus:- NameNode
- Secondary NameNode
In einem Managed Service for Apache Spark-Cluster mit Hochverfügbarkeit:
- führen
cluster-name-m-0undcluster-name-m-1Folgendes aus:- NameNode
- ZKFailoverController
- Alle Master führen JournalNode aus
- Es gibt keinen sekundären NameNode
Weitere Informationen zu den Komponenten finden Sie in der Dokumentation zu HDFS-Hochverfügbarkeit.
YARN
In einem standardmäßigen Managed Service for Apache Spark-Cluster führt cluster-name-m den ResourceManager aus.
In einem Managed Service for Apache Spark-Cluster mit Hochverfügbarkeit führen alle Master ResourceManager aus.
Weitere Informationen zu den Komponenten finden Sie in der Dokumentation zu YARN-Hochverfügbarkeit.
Hochverfügbarkeitscluster erstellen
Console
- Öffnen Sie die Seite Cluster erstellen für Managed Service for Apache Spark.
- Wählen Sie im Abschnitt Clusterform definieren die Option Hochverfügbarkeit aus.
- Standardmäßig entsprechen die Einstellungen für den Treiberknoten den Einstellungen für den primären Worker. Unter Zusätzliche Konfiguration können Sie Treiberknoten bearbeiten, um das Häkchen bei Treiberknoten standardmäßig auf primären Worker festlegen zu entfernen, und dann die Einstellungen für den Treiberknoten festlegen.
gcloud-Befehl
Führen Sie den folgenden Befehl aus, um einen Hochverfügbarkeitscluster 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.