Dataproc-Clusterkonfiguration

In Cloud Data Fusion bezieht sich die Clusterkonfiguration darauf, zu definieren, Datenverarbeitungspipelines nutzen beim Ausführen von Spark Rechenressourcen Jobs in Dataproc ausführen. Auf dieser Seite werden die wichtigsten Ansätze zur Clusterkonfiguration.

Sitzungsspezifische Standardcluster (empfohlen)

Die Verwendung der Standardcluster wird für Cloud Data Fusion-Pipelines

  • Mit Cloud Data Fusion werden sitzungsspezifische Daten automatisch bereitgestellt und verwaltet. Dataproc-Cluster für jede Pipelineausführung. Es wird eine den Cluster am Anfang der Pipelineausführung an und löscht ihn nach der Ausführung die Pipelineausführung beendet.
  • Vorteile sitzungsspezifischer Cluster:
    • Einfachheit: Die Funktion muss nicht manuell konfiguriert oder verwaltet werden. Cluster.
    • Kosteneffizienz: Sie zahlen nur für die Ressourcen, die während Pipelineausführung.

Informationen zum Anpassen von Clustern und zum 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: für Pipelines, die kontinuierlich oder für kann ein statischer Cluster kostengünstiger sein das wiederholte Erstellen und Löschen sitzungsspezifischer Cluster.
  • Zentrale Clusterverwaltung: wenn Ihre Organisation Zentralisierte Kontrolle über Clustererstellungs- und -verwaltungsrichtlinien, statisch Cluster können zusammen mit Tools wie Terraform verwendet werden.
  • Clustererstellungszeit: die Zeit, die zum Erstellen eines neuen Clusters benötigt wird. Pipeline ist für Ihren Anwendungsfall nicht zulässig.

Statische Cluster erfordern jedoch eine umfassendere manuelle Konfiguration und Verwaltung. des Clusterlebenszyklus.

Für die Verwendung eines statischen Clusters müssen Sie Folgendes festlegen: Property im Dataproc-Cluster:

dataproc:dataproc.conscrypt.provider.enable=false

Clusterkonfigurationsoptionen für statische Cluster

Wenn Sie statische Cluster verwenden, bietet Cloud Data Fusion für die folgenden Aspekte:

  • Worker-Maschinentyp: Geben Sie den Typ der virtuellen Maschine für den Worker an. Knoten in Ihrem Cluster. Davon hängt ab, welche vCPUs und für jeden Worker.
  • Anzahl der Worker: Definieren Sie die anfängliche Anzahl von Worker-Knoten in der Cluster. Dataproc skaliert diese Zahl möglicherweise trotzdem automatisch, Arbeitsbelastung.
  • Zone: Wählen Sie die Google Cloud-Zone des Clusters aus. Der Standort kann sich auf Datenlokalität und Netzwerkleistung.
  • Zusätzliche Konfigurationen: Sie können erweiterte Optionen für Ihre statische Cluster, z. B. Einstellungen für vorzeitiges Beenden, Netzwerkeinstellungen und Initialisierungsaktionen.

Best Practices

Verwenden Sie beim Erstellen eines statischen Clusters für Ihre Pipelines Folgendes: Konfigurationen.

Parameter Beschreibung
yarn.nodemanager.delete.debug-delay-sec Behält YARN-Protokolle auf.
Empfohlener Wert: 86400 (entspricht einem Tag)
yarn.nodemanager.pmem-check-enabled Aktiviert YARN, um nach physischen Arbeitsspeicherlimits zu suchen und Container zu beenden, wenn sie gehen über das physische Gedächtnis hinaus.
Empfohlener Wert: false
yarn.nodemanager.vmem-check-enabled Ermöglicht YARN, nach Limits für virtuelle Arbeitsspeicher zu suchen und Container zu beenden, wenn sie gehen über das physische Gedächtnis hinaus.
Empfohlener Wert: false.

Weitere Informationen finden Sie unter Pipeline für vorhandenen Dataproc-Cluster ausführen.

Cluster wiederverwenden

Sie können Dataproc-Cluster zwischen Ausführungen wiederverwenden, um die Leistung zu verbessern. Bearbeitungszeit. Die Wiederverwendung von Clustern wird in einem Modell ähnlich wie bei einer Verbindung implementiert oder Thread-Pooling. Jeder Cluster wird für einen bestimmten Zeitraum nach Abschluss der Ausführung wieder. Beim Start einer neuen Ausführung wird versucht, einen inaktiven Cluster verfügbar, der mit der Konfiguration des Compute-Profils übereinstimmt. Ist ein Cluster vorhanden, wird er verwendet. Andernfalls wird ein neuer Cluster gestartet.

Hinweise zur Wiederverwendung von Clustern

  • Cluster sind nicht freigegeben. Ähnlich wie beim regulären sitzungsspezifischen Cluster Bereitstellungsmodells führt ein Cluster jeweils nur eine Pipeline aus. A der Cluster nur wiederverwendet wird, wenn er inaktiv ist.
  • Wenn Sie die Wiederverwendung von Clustern für alle Ausführungen aktivieren, wird die erforderliche Anzahl von Cluster zur Verarbeitung aller Ausführungen nach Bedarf erstellt. Ähnlich wie die sitzungsspezifischen Dataproc-Bereitstellers erstellt haben, gibt es keine direkte Kontrolle Anzahl der erstellten Cluster. Sie können weiterhin Google Cloud-Angebote verwenden, Ressourcen zu verwalten. Wenn Sie beispielsweise 100 Ausführungen mit maximal 7 parallelen Ausführungen gibt es bis zu 7 Cluster zu einem bestimmten Zeitpunkt.
  • Cluster werden zwischen verschiedenen Pipelines wiederverwendet, sobald diese Pipelines dasselbe Profil und dieselben Profileinstellungen verwenden. Wenn-Profil werden Cluster zwar wiederverwendet, aber nur, wenn sind die Anpassungen identisch, einschließlich aller Clustereinstellungen wie Cluster-Labeling.

  • Wenn die Wiederverwendung von Clustern aktiviert ist, müssen im Wesentlichen zwei Aspekte berücksichtigt werden:

    • Für das Starten und Initialisieren des Clusters werden weniger Ressourcen verwendet.
    • Für Cluster, die sich zwischen der Pipeline befinden, werden mehr Ressourcen verwendet und nach der letzten Pipelineausführung.

Es ist zwar schwierig, den Kosteneffekt der Wiederverwendung von Clustern vorherzusagen, Sie können jedoch um maximale Einsparungen zu erzielen. Die Strategie besteht darin, einen kritischen Pfad für Pipelines und ermöglichen die Wiederverwendung von Clustern für diesen kritischen Pfad. Dies würde sicherstellen, dass der Cluster sofort wiederverwendet wird, keine Leerlaufzeit verschwendet und maximale Leistungsvorteile erreicht werden.

Cluster-Wiederverwendung aktivieren

Im Bereich „Compute Config“ der bereitgestellten Pipelinekonfiguration Erstellen eines neuen Compute-Profils:

  • Aktivieren Sie Clusterlöschung überspringen.
  • Die maximale Inaktivitätszeit ist die Zeit, bis zu der ein Cluster auf die nächste Pipeline wartet um sie wiederzuverwenden. Die maximale Inaktivitätszeit beträgt standardmäßig 30 Minuten. Für die maximale Inaktivitätszeit: die Kosten im Vergleich zur Clusterverfügbarkeit für die Wiederverwendung. Je höher der desto mehr Cluster sind inaktiv und können ausgeführt werden.

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.

Frühere Versionen von Cloud Data Fusion sind nur kompatibel mit nicht unterstützten Dataproc-Versionen. Dataproc bietet keine Aktualisierungen und keine Unterstützung für Cluster, die mit diesen Versionen erstellt wurden. Sie können einen Cluster, der mit einer nicht unterstützten Version erstellt wurde, empfehlen wir, sie durch eine Version zu ersetzen. erstellt mit einem unterstützte Version haben.

Cloud Data Fusion-Version Dataproc-Version
6.10 und höher 2.1 und 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**

* Cloud Data Fusion ab Version 6.4 ist kompatibel mit unterstützten Dataproc-Versionen. Sofern keine spezifischen Betriebssystemfunktionen erforderlich sind, wird empfohlen, den Parameter major.minor-Image-Version.
Zum Angeben der Betriebssystemversion, die in Ihrem Dataproc-Cluster verwendet wird, Version muss mit einer der unterstützten Dataproc kompatibel sein Versionen für Cloud Data Fusion in der vorherigen Tabelle.

** Die Cloud Data Fusion-Versionen 6.1 bis 6.6 sind kompatibel mit nicht unterstützte Dataproc-Version 1.3.

Fehlerbehebung: Container wurde mit einem Exit-Code 3 ungleich null beendet

Problem: Es wird keine Autoscaling-Richtlinie verwendet und die statische Bei Dataproc-Clustern kommt es zu einer Speicherauslastung, was zu einer Out-of-Memory-Ausnahme, die in den Logs angezeigt wird: Container exited with a non-zero exit code 3.

Empfohlen: Erhöhen Sie den Executor-Arbeitsspeicher.

Arbeitsspeicher durch Hinzufügen einer task.executor.system.resources.memory-Laufzeit erhöhen an die Pipeline übergeben. Mit dem folgenden Beispiel für ein Laufzeitargument wird der Arbeitsspeicher bis 4.096 MB:

"task.executor.system.resources.memory": 4096

Weitere Informationen finden Sie unter Clustergröße.

Nächste Schritte