In Cloud Data Fusion bezieht sich die Clusterkonfiguration darauf, wie Ihre Datenverarbeitungspipelines Rechenressourcen beim Ausführen von Spark-Jobs in Dataproc nutzen. Auf dieser Seite werden die wichtigsten Ansätze für die Clusterkonfiguration beschrieben.
Standard-sitzungsspezifische Cluster (empfohlen)
Für Cloud Data Fusion-Pipelines wird die Verwendung der Standardcluster empfohlen.
- Cloud Data Fusion stellt sitzungsspezifische Dataproc-Cluster für jede Pipelineausführung automatisch bereit und verwaltet sie. Der Cluster erstellt zu Beginn der Pipelineausführung einen Cluster und löscht ihn anschließend wieder.
- Vorteile von sitzungsspezifischen Clustern:
- Einfachheit: Sie müssen den Cluster nicht manuell konfigurieren oder verwalten.
- Kostengünstig: Sie zahlen nur für die Ressourcen, die während der Pipelineausführung verwendet werden.
Informationen zum Anpassen von Clustern und Optimieren der Leistung finden Sie unter Clustergröße.
Statische Cluster (für bestimmte Szenarien)
In den folgenden Fällen können Sie statische Cluster verwenden:
- Langlaufende Pipelines: Bei Pipelines, die kontinuierlich oder über einen längeren Zeitraum ausgeführt werden, kann ein statischer Cluster kosteneffizienter sein als das wiederholte Erstellen und Zerstören von Sitzungsspezifischen Clustern.
- Zentrale Clusterverwaltung: Wenn Ihre Organisation eine zentrale Kontrolle über die Clustererstellung und -verwaltungsrichtlinien benötigt, können statische Cluster zusammen mit Tools wie Terraform verwendet werden.
- Zeit für das Erstellen von Clustern: Wenn die Zeit, die zum Erstellen eines neuen Clusters für jede Pipeline benötigt wird, für Ihren Anwendungsfall untragbar ist.
Statische Cluster erfordern jedoch mehr manuelle Konfiguration und Sie müssen den Clusterlebenszyklus selbst verwalten.
Wenn Sie einen statischen Cluster verwenden möchten, müssen Sie die folgende Eigenschaft für den Dataproc-Cluster festlegen:
dataproc:dataproc.conscrypt.provider.enable=false
Clusterkonfigurationsoptionen für statische Cluster
Wenn Sie statische Cluster verwenden, bietet Cloud Data Fusion Konfigurationsoptionen für die folgenden Aspekte:
- Worker-Maschinentyp: Geben Sie den Typ der virtuellen Maschine für die Worker-Knoten in Ihrem Cluster an. So werden die für jeden Worker verfügbaren vCPUs und der Arbeitsspeicher bestimmt.
- Anzahl der Worker: Hiermit wird die anfängliche Anzahl der Worker-Knoten in Ihrem Cluster definiert. Dataproc kann diese Anzahl jedoch basierend auf der Arbeitslast automatisch skalieren.
- Zone: Wählen Sie die Google Cloud Zone Ihres Clusters aus. Der Standort kann sich auf die Datenlokalität und die Netzwerkleistung auswirken.
- Zusätzliche Konfigurationen: Sie können erweiterte Optionen für Ihren Static Cluster konfigurieren, z. B. Voraktivierungseinstellungen, Netzwerkeinstellungen und Initialisierungsaktionen.
Best Practices
Verwenden Sie beim Erstellen eines statischen Clusters für Ihre Pipelines die folgenden Konfigurationen.
Parameter | Beschreibung |
---|---|
yarn.nodemanager.delete.debug-delay-sec |
Behält YARN-Logs bei. Empfohlener Wert: 86400 (entspricht einem Tag) |
yarn.nodemanager.pmem-check-enabled |
Ermöglicht YARN, physische Speicherlimits zu prüfen und Container zu beenden, wenn sie über den physischen Speicher hinausgehen. Empfohlener Wert: false |
yarn.nodemanager.vmem-check-enabled |
Ermöglicht YARN, virtuelle Speicherlimits zu prüfen und Container zu beenden, wenn sie über den physischen Speicher hinausgehen. Empfohlener Wert: false . |
Weitere Informationen finden Sie unter Pipeline für einen vorhandenen Dataproc-Cluster ausführen.
Cluster wiederverwenden
Sie können Dataproc-Cluster zwischen den Ausführungen wiederverwenden, um die Verarbeitungszeit zu verkürzen. Die Clusterwiederverwendung wird in einem Modell implementiert, das dem Verbindungs- oder Thread-Pooling ähnelt. Jeder Cluster wird nach Abschluss des Durchlaufs für einen bestimmten Zeitraum beibehalten. Wenn ein neuer Durchlauf gestartet wird, wird versucht, einen ungenutzten Cluster zu finden, der der Konfiguration des Compute-Profils entspricht. Wenn ein Cluster vorhanden ist, wird er verwendet. Andernfalls wird ein neuer Cluster gestartet.
Hinweise zur Wiederverwendung von Clustern
- Cluster werden nicht freigegeben. Ähnlich wie beim regulären Modell für die Bereitstellung sitzungsspezifischer Cluster wird in einem Cluster jeweils nur eine Pipeline ausgeführt. Ein Cluster wird nur dann wiederverwendet, wenn er inaktiv ist.
- Wenn Sie die Clusterwiederverwendung für alle Ausführungen aktivieren, wird die erforderliche Anzahl von Clustern zur Verarbeitung aller Ausführungen nach Bedarf erstellt. Ähnlich wie beim sitzungsspezifischen Dataproc-Bereitsteller kann die Anzahl der erstellten Cluster nicht direkt gesteuert werden. Sie können weiterhin Google Cloud -Anführungszeichen verwenden, um Ressourcen zu verwalten. Wenn Sie beispielsweise 100 Ausführungen mit maximal 7 parallelen Ausführungen ausführen, haben Sie zu einem bestimmten Zeitpunkt bis zu 7 Cluster.
Cluster werden zwischen verschiedenen Pipelines wiederverwendet, sobald diese Pipelines dasselbe Profil und dieselben Profileinstellungen verwenden. Wenn die Profilanpassung verwendet wird, werden Cluster weiterhin wiederverwendet, aber nur, wenn die Anpassungen genau gleich sind, einschließlich aller Clustereinstellungen wie Clusterlabel.
Wenn die Clusterwiederverwendung aktiviert ist, sind zwei Hauptkostenaspekte zu berücksichtigen:
- Für den Start und die Initialisierung des Clusters werden weniger Ressourcen benötigt.
- Es werden mehr Ressourcen für Cluster verwendet, die zwischen den Pipelineausführungen und nach der letzten Pipelineausführung inaktiv sind.
Es ist zwar schwierig, die Kosteneffekte der Clusterwiederverwendung vorherzusagen, aber Sie können eine Strategie anwenden, um maximale Einsparungen zu erzielen. Die Strategie besteht darin, einen kritischen Pfad für verkettete Pipelines zu identifizieren und die Clusterwiederverwendung für diesen kritischen Pfad zu ermöglichen. So wird sichergestellt, dass der Cluster sofort wiederverwendet wird, keine Inaktivitätszeiten verschwendet werden und maximale Leistungsvorteile erzielt werden.
Clusterwiederverwendung aktivieren
Gehen Sie in der bereitgestellten Pipelinekonfiguration im Abschnitt „Compute-Konfiguration“ oder beim Erstellen eines neuen Compute-Profils so vor:
- Aktivieren Sie Clusterlöschung überspringen.
- Die maximale Inaktivitätsdauer ist die Zeit, bis ein Cluster auf die nächste Pipeline wartet, um ihn wiederzuverwenden. Die Standardeinstellung für die maximale Inaktivitätsdauer beträgt 30 Minuten. Berücksichtigen Sie bei der maximalen Inaktivitätsdauer die Kosten im Vergleich zur Clusterverfügbarkeit für die Wiederverwendung. Je höher der Wert für die maximale Inaktivitätszeit ist, desto mehr Cluster sind inaktiv und bereit für eine Ausführung.
Problembehebung: Versionskompatibilität
Problem: Die Version Ihrer Cloud Data Fusion-Umgebung ist möglicherweise nicht mit der Version Ihres Dataproc-Clusters kompatibel.
Empfohlen: Führen Sie ein Upgrade auf die neueste Cloud Data Fusion-Version durch und verwenden Sie eine der unterstützten Dataproc-Versionen.
Ältere Versionen von Cloud Data Fusion sind nur mit nicht unterstützten Versionen von Dataproc kompatibel. Dataproc bietet keine Aktualisierungen und keine Unterstützung für Cluster, die mit diesen Versionen erstellt wurden. Sie können weiterhin einen Cluster ausführen, der mit einer nicht unterstützten Version erstellt wurde. Wir empfehlen jedoch, ihn durch einen Cluster zu ersetzen, der mit einer unterstützten Version erstellt wurde.
Cloud Data Fusion-Version | Dataproc-Version |
---|---|
6.10.1.1 | 2.2***, 2.1, 2.0 * |
6.10 | 2.1, 2.0 * |
6.9 | 2.1, 2.0, 1.5 * |
6,7–6,8 | 2,0, 1,5 * |
6.4–6.6 | 2,0 *, 1,3 ** |
6.1–6.3 | 1,3** |
major.minor
-Imageversion anzugeben.Wenn Sie die in Ihrem Dataproc-Cluster verwendete Betriebssystemversion angeben, muss diese mit einer der unterstützten Dataproc-Versionen für Ihre Cloud Data Fusion-Umgebung in der Tabelle oben kompatibel sein.
Problembehebung: Container wurde mit dem Exit-Code 3 beendet
Problem: Es wird keine Autoscaling-Richtlinie verwendet und die statischen Dataproc-Cluster sind durch Speichermangel belastet. In den Protokollen wird die Ausnahme „Nicht genügend Arbeitsspeicher“ Container exited with a non-zero
exit code 3
ausgegeben.
Empfohlen: Erhöhen Sie den Arbeitsspeicher des Executors.
Erhöhen Sie den Arbeitsspeicher, indem Sie der Pipeline ein task.executor.system.resources.memory
-Laufzeitargument hinzufügen. Im folgenden Beispiel wird mit dem Laufzeitargument der Arbeitsspeicher auf 4.096 MB festgelegt:
"task.executor.system.resources.memory": 4096
Weitere Informationen finden Sie unter Clustergröße.
Nächste Schritte
- Weitere Informationen finden Sie unter Dataproc-Image-Version ändern.