In Cloud Data Fusion bezieht sich die Clusterkonfiguration darauf, wie Ihre Datenverarbeitungspipelines Rechenressourcen nutzen, wenn Spark-Jobs in Dataproc ausgeführt werden. Auf dieser Seite werden die wichtigsten Ansätze für die Clusterkonfiguration beschrieben.
Standardmäßige flüchtige Cluster (empfohlen)
Die Verwendung der Standardcluster ist der empfohlene Ansatz für Cloud Data Fusion-Pipelines.
- Cloud Data Fusion stellt automatisch sitzungsspezifische Dataproc-Cluster für jede Pipelineausführung bereit und verwaltet sie. Der Cluster wird zu Beginn der Pipelineausführung erstellt und nach Abschluss der Pipelineausführung wieder gelöscht.
- Vorteile von kurzlebigen Clustern:
- Einfachheit: Sie müssen den Cluster nicht manuell konfigurieren oder verwalten.
- Kosteneffizienz: 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 Szenarien können Sie statische Cluster verwenden:
- Lang andauernde Pipelines: Bei Pipelines, die kontinuierlich oder über einen längeren Zeitraum ausgeführt werden, kann ein statischer Cluster kostengünstiger sein als das wiederholte Erstellen und Löschen von sitzungsspezifischen Clustern.
- Zentrale Clusterverwaltung: Wenn Ihre Organisation eine zentrale Kontrolle über die Richtlinien für die Clustererstellung und -verwaltung benötigt, können statische Cluster zusammen mit Tools wie Terraform verwendet werden.
- Clustererstellungszeit: 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 folgenden Attribute für den Dataproc-Cluster festlegen:
dataproc:dataproc.conscrypt.provider.enable=false
capacity-scheduler:yarn.scheduler.capacity.resource-calculator="org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator"
Optionen für die Clusterkonfiguration 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. Damit werden die vCPUs und der Arbeitsspeicher für jeden Worker festgelegt.
- Anzahl der Worker: Legen Sie die anfängliche Anzahl der Worker-Knoten in Ihrem Cluster fest. Dataproc kann diese Zahl je nach Arbeitslast weiterhin automatisch skalieren.
- Zone: Wählen Sie die Google Cloud Zone Ihres Clusters aus. Der Speicherort kann sich auf die Datenlokalität und die Netzwerkleistung auswirken.
- Zusätzliche Konfigurationen: Sie können erweiterte Optionen für Ihren statischen Cluster konfigurieren, z. B. Einstellungen für das Unterbrechen von Vorgängen, 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 |
dataproc.scheduler.driver-size-mb |
Aufgrund des durchschnittlichen Speicherbedarfs des Treibers stellt Dataproc den Job in die Warteschlange, wenn auf dem Masterknoten nicht genügend Arbeitsspeicher zum Ausführen des Treiberprozesses vorhanden ist. Dies kann sich auf die Job-Concurrency auswirken, lässt sich aber durch die Verwendung eines Masterknotens mit mehr Arbeitsspeicher abmildern. Empfohlener Wert: 2048 |
Weitere Informationen finden Sie unter Pipeline für einen vorhandenen Dataproc-Cluster ausführen.
Cluster wiederverwenden
Sie können Dataproc-Cluster zwischen Ausführungen wiederverwenden, um die Verarbeitungszeit zu verkürzen. Die Wiederverwendung von Clustern wird in einem Modell implementiert, das dem Verbindungs- oder Thread-Pooling ähnelt. Jeder Cluster wird nach Abschluss des Durchlaufs für einen bestimmten Zeitraum weiter ausgeführt. Wenn ein neuer Lauf gestartet wird, wird versucht, einen inaktiven Cluster zu finden, der der Konfiguration des Rechenprofils 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 sitzungsspezifischen Clusterbereitstellungsmodell wird in einem Cluster jeweils nur ein Pipeline-Lauf ausgeführt. Ein Cluster wird nur wiederverwendet, wenn er im Leerlauf ist.
- Wenn Sie die Clusterwiederverwendung für alle Ihre Läufe aktivieren, wird die erforderliche Anzahl von Clustern zum Verarbeiten aller Ihrer Läufe nach Bedarf erstellt. Ähnlich wie beim kurzlebigen Dataproc-Provisioner gibt es keine direkte Kontrolle über die Anzahl der erstellten Cluster. 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 verwenden und dieselben Profileinstellungen haben. Wenn die Profilanpassung verwendet wird, werden Cluster weiterhin wiederverwendet, aber nur, wenn die Anpassungen genau gleich sind, einschließlich aller Clustereinstellungen wie der Clusterkennzeichnung.
Wenn die Wiederverwendung von Clustern aktiviert ist, sind zwei Hauptkostenfaktoren zu berücksichtigen:
- Für das Starten und Initialisieren von Clustern werden weniger Ressourcen verwendet.
- Für Cluster, die zwischen den Pipelineausführungen und nach der letzten Pipelineausführung im Leerlauf sind, werden mehr Ressourcen verwendet.
Es ist zwar schwierig, die Kostenauswirkungen der Clusternutzung 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 Wiederverwendung von Clustern für diesen kritischen Pfad zu ermöglichen. So wird sichergestellt, dass der Cluster sofort wiederverwendet wird, keine Leerlaufzeit verschwendet wird und die maximale Leistung erzielt wird.
Clusterwiederverwendung aktivieren
Im Abschnitt „Compute Config“ der bereitgestellten Pipelinekonfiguration oder beim Erstellen eines neuen Compute-Profils:
- Aktivieren Sie Cluster Delete überspringen.
- Die maximale Leerlaufzeit ist die Zeit, bis zu der ein Cluster auf die nächste Pipeline wartet, um ihn wiederzuverwenden. Die standardmäßige maximale Leerlaufzeit beträgt 30 Minuten. Berücksichtigen Sie für „Max Idle Time“ die Kosten im Vergleich zur Clusterverfügbarkeit für die Wiederverwendung. Je höher der Wert für „Max Idle Time“ ist, desto mehr Cluster sind inaktiv und bereit für die Ausführung.
Fehlerbehebung: 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. Es wird jedoch empfohlen, ihn durch einen Cluster zu ersetzen, der mit einer unterstützten Version erstellt wurde.
Cloud Data Fusion-Version | Dataproc-Version |
---|---|
6.11.1 | 2.3 |
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
-Image-Version anzugeben.Wenn Sie die Betriebssystemversion für Ihren Dataproc-Cluster angeben möchten, muss die Betriebssystemversion mit einer der unterstützten Dataproc-Versionen für Ihre Cloud Data Fusion in der vorherigen Tabelle kompatibel sein.
Problembehebung: Container wurde mit dem Exit-Code 3 beendet
Problem: Eine Autoscaling-Richtlinie wird nicht verwendet und die statischen Dataproc-Cluster haben Arbeitsspeicherprobleme, was zu einer OutOfMemory-Ausnahme in den Logs führt: Container exited with a non-zero
exit code 3
.
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. Mit dem folgenden Laufzeitargument wird 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.