Das Optimieren einer Spark-Arbeitslast im Hinblick auf Leistung und Ausfallsicherheit kann aufgrund der Anzahl der Spark-Konfigurationsoptionen und der Schwierigkeiten festzustellen, wie sich diese Optionen auf eine Arbeitslast auswirken. Die serverlose Autooptimierung von Dataproc bietet eine Alternative zur manuellen Arbeitslastkonfiguration. Dabei werden Spark-Konfigurationseinstellungen basierend auf Best Practices für die Spark-Optimierung und einer Analyse der Arbeitslastausführungen automatisch auf eine wiederkehrende Spark-Arbeitslast angewendet.
Für Dataproc Serverless Autotuning registrieren
Füllen Sie das Anmeldeformular für Gemini in der BigQuery-Vorschau aus und reichen Sie es ein, um sich für den Zugriff auf die auf dieser Seite beschriebene Vorabversion von Dataproc Serverless Autotuning zu registrieren. Nachdem das Formular genehmigt wurde, haben die im Formular aufgeführten Projekte Zugriff auf Vorschaufunktionen.
Vorteile
Die automatische Einstellung von Dataproc Serverless bietet folgende Vorteile:
- Verbesserte Leistung: Optimierung zur Leistungssteigerung
- Schnellere Optimierung: Automatische Konfiguration, um zeitaufwendige manuelle Konfigurationstests zu vermeiden
- Erhöhte Ausfallsicherheit: Automatische Speicherzuweisung zur Vermeidung von speicherbezogenen Fehlern
Beschränkungen
Für Dataproc Serverless Autotuning gelten die folgenden Einschränkungen:
- Die automatische Feinabstimmung wird berechnet und auf die zweite und nachfolgende Ausführungen einer Arbeitslast angewendet. Die erste Ausführung einer wiederkehrenden Arbeitslast wird nicht automatisch optimiert, da Dataproc Serverless Autotuning den Arbeitslastverlauf zur Optimierung verwendet.
- Das Reduzieren des Arbeitsspeichers wird nicht unterstützt.
- Die automatische Einstellung wird nicht rückwirkend auf laufende Arbeitslasten angewendet, sondern nur auf neu gesendete Arbeitslastkohorten.
Autotuning-Kohorten
Die automatische Einstellung wird auf wiederkehrende Ausführungen einer Batcharbeitslast angewendet, die als Kohorten bezeichnet werden.
Der Kohortenname, den Sie beim Senden einer Arbeitslast angeben, kennzeichnet sie als eine der aufeinanderfolgenden Ausführungen der wiederkehrenden Arbeitslast.
Es empfiehlt sich, Kohortennamen zu verwenden, die den Typ der Arbeitslast beschreiben oder anderweitig dazu beitragen, die Ausführungen einer Arbeitslast als Teil einer wiederkehrenden Arbeitslast zu identifizieren. Geben Sie beispielsweise TPCH-Query1
als Kohortennamen für eine geplante Arbeitslast an, die eine tägliche TPC-H-Abfrage ausführt.
Autotuning-Szenarien
Sie wenden Dataproc Serverless Autotuning auf Ihre Arbeitslast an, indem Sie eines oder mehrere der folgenden Autotuning-Szenarien auswählen:
OOM
: Automatische Feinabstimmung der Spark-Arbeitsspeicherzuweisung, um eine zuvor fehlgeschlagene Arbeitslast aufgrund eines OOM-Fehlers (Out-of-Memory) zu beheben.MEMORY
: Automatische Feinabstimmung der Spark-Arbeitsspeicherzuweisung, um potenzielle Fehler aufgrund fehlenden Arbeitsspeichers vorherzusagen und zu vermeiden.SCALING
: Konfigurationseinstellungen für das Spark-Autoscaling automatisch optimierenBHJ
: Automatische Feinabstimmung der Spark-Konfigurationseinstellungen, um die Leistung von SQL-Broadcast-Joins zu optimieren.
Preise
Dataproc Serverless Autotuning wird in der Vorabversion ohne zusätzliche Kosten angeboten. Es gelten die Dataproc Serverless-Preise.
Regionale Verfügbarkeit
Sie können Dataproc Serverless Autotuning mit Batches verwenden, die in verfügbaren Compute Engine-Regionen gesendet werden.
Dataproc Serverless Autotuning verwenden
Sie können Dataproc Serverless Autotuning für eine Arbeitslast mithilfe der Google Cloud Console, der Google Cloud CLI oder der Dataproc API aktivieren.
Console
Führen Sie die folgenden Schritte aus, um Dataproc Serverless Autotuning bei jeder Einreichung einer wiederkehrenden Batcharbeitslast zu aktivieren:
Rufen Sie in der Google Cloud Console die Dataproc-Seite Batches auf.
Klicken Sie auf Erstellen, um eine Batcharbeitslast zu erstellen.
Füllen Sie im Abschnitt Container die folgenden Felder für Ihre Spark-Arbeitslast aus:
- Kohorte: Der Name der Kohorte, der den Batch als Teil einer Reihe wiederkehrender Arbeitslasten kennzeichnet.
Die automatische Feinabstimmung wird auf die zweite und nachfolgende Arbeitslasten angewendet, die mit diesem Kohortennamen gesendet werden. Geben Sie beispielsweise
TPCH-Query1
als Kohortennamen für eine geplante Arbeitslast an, die eine tägliche TPC-H-Abfrage ausführt. - Autotuning-Szenarien:Ein oder mehrere Autotuning-Szenarien, mit denen die Arbeitslast optimiert werden soll, z. B.
OOM
,MEMORY
undSCALING
. Sie können die Szenarioauswahl bei jedem eingereichten Batch-Kohorten auswählen.
- Kohorte: Der Name der Kohorte, der den Batch als Teil einer Reihe wiederkehrender Arbeitslasten kennzeichnet.
Die automatische Feinabstimmung wird auf die zweite und nachfolgende Arbeitslasten angewendet, die mit diesem Kohortennamen gesendet werden. Geben Sie beispielsweise
Füllen Sie nach Bedarf die anderen Abschnitte auf der Seite Batch erstellen aus und klicken Sie dann auf Senden. Weitere Informationen zu diesen Feldern finden Sie unter Batcharbeitslast senden.
gcloud
Wenn Sie Dataproc Serverless Autotuning bei jeder Einreichung einer wiederkehrenden Batcharbeitslast aktivieren möchten, führen Sie den folgenden gcloud dataproc batches submit
-Befehl der gcloud CLI lokal in einem Terminalfenster oder in Cloud Shell aus.
gcloud dataproc batches submit COMMAND \ --region=REGION \ --cohort=COHORT \ --autotuning-scenarios=SCENARIOS \ other arguments ...
Ersetzen Sie Folgendes:
- COMMAND: der Spark-Arbeitslasttyp, z. B.
Spark
,PySpark
,Spark-Sql
oderSpark-R
- REGION: Die Region, in der Ihre Arbeitslast ausgeführt wird.
- COHORT: der Name der Kohorte, der den Batch als einen in einer Reihe wiederkehrender Arbeitslasten identifiziert.
Die automatische Feinabstimmung wird auf die zweite und nachfolgende Arbeitslasten angewendet, die mit diesem Kohortennamen gesendet werden. Geben Sie beispielsweise
TPCH Query 1
als Kohortennamen für eine geplante Arbeitslast an, die eine tägliche TPC-H-Abfrage ausführt. - SCENARIOS: ein oder mehrere durch Kommas getrennte Autotuning-Szenarien zum Optimieren der Arbeitslast, z. B.
--autotuning-scenarios=OOM,MEMORY,SCALING
. Sie können die Szenarioliste bei jedem eingereichten Batch-Kohorteneintrag ändern.
API
Senden Sie eine batches.create-Anfrage mit den folgenden Feldern, um Dataproc Serverless Autotuning bei jeder Einreichung einer wiederkehrenden Batcharbeitslast zu aktivieren:
RuntimeConfig.cohort
: Der Name der Kohorte, der den Batch als einen aus einer Reihe wiederkehrender Arbeitslasten identifiziert. Die automatische Feinabstimmung wird auf die zweite und nachfolgende Arbeitslasten angewendet, die mit diesem Kohortennamen eingereicht werden. Geben Sie beispielsweiseTPCH-Query1
als Kohortennamen für eine geplante Arbeitslast an, die eine tägliche TPC-H-Abfrage ausführt.AutotuningConfig.scenarios
: Ein oder mehrere Autotuning-Szenarien, mit denen die Arbeitslast optimiert wird, z. B.OOM
,MEMORY
undSCALING
. Sie können die Szenarioliste bei jedem eingereichten Batch-Kohorteneintrag ändern.
Beispiel:
...
runtimeConfig:
cohort: TPCH-Query1
autotuningConfig:
scenarios:
- OOM
- MEMORY
- SCALING
...
Änderungen bei der automatischen Feinabstimmung ansehen
Führen Sie den Befehl gcloud dataproc batches describe
aus, um Dataproc Serverless Autotuning-Änderungen an einer Batcharbeitslast anzusehen.
Beispiel: Die Ausgabe von gcloud dataproc batches describe
sieht in etwa so aus:
...
runtimeInfo:
propertiesInfo:
# Properties set by autotuning.
autotuningProperties
spark.driver.memory:
annotation: Driver OOM was detected
value: 11520m
spark.driver.memoryOverhead:
annotation: Driver OOM was detected
value: 4608m
# Old overwritten properties.
userProperties
...
Sie können auch die letzten Autotuning-Änderungen anzeigen, die auf eine laufende, abgeschlossene oder fehlgeschlagene Arbeitslast angewendet wurden, auf der Seite Batchdetails in der Google Cloud Console auf dem Tab Investigate.