Spark-Arbeitslasten automatisch abstimmen

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 optimieren
  • BHJ: 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:

  1. Rufen Sie in der Google Cloud Console die Dataproc-Seite Batches auf.

    Zu Dataproc-Batches

  2. Klicken Sie auf Erstellen, um eine Batcharbeitslast zu erstellen.

  3. 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 und SCALING. Sie können die Szenarioauswahl bei jedem eingereichten Batch-Kohorten auswählen.
  4. 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 oder Spark-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 beispielsweise TPCH-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 und SCALING. 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.

Untersuchungsbereich für Autotuning.