Spark-Arbeitslasten automatisch abstimmen

Das Optimieren einer Spark-Arbeitslast im Hinblick auf Leistung und Robustheit kann aufgrund der Anzahl der Spark-Konfigurationsoptionen und der Schwierigkeit, die Auswirkungen dieser Optionen auf eine Arbeitslast zu bewerten, schwierig sein. Die serverlose automatische Abstimmung von Dataproc stellt eine Alternative zur manuellen Konfiguration von Arbeitslasten dar. Dabei werden die 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 die automatische Abstimmung von Dataproc Serverless registrieren

Wenn Sie sich für den Zugriff auf die auf dieser Seite beschriebene Vorabversion von Dataproc Serverless Autotuning registrieren möchten, müssen Sie das Anmeldeformular für Gemini in der BigQuery-Vorschau ausfüllen und einreichen. Nach der Genehmigung des Formulars haben die im Formular aufgeführten Projekte Zugriff auf Vorschaufunktionen.

Vorteile

Die serverlose automatische Abstimmung von Dataproc bietet folgende Vorteile:

  • Verbesserte Leistung: Durch Optimierung die Leistung steigern
  • Schnellere Optimierung: Automatische Konfiguration, um zeitaufwendige manuelle Konfigurationstests zu vermeiden
  • Erhöhte Ausfallsicherheit: Automatische Speicherzuweisung, um speicherbezogene Fehler zu vermeiden

Beschränkungen

Für die automatische Abstimmung von Dataproc Serverless gelten die folgenden Einschränkungen:

  • Die automatische Abstimmung wird berechnet und auf den zweiten und folgenden Durchlauf einer Arbeitslast angewendet. Die erste Ausführung einer wiederkehrenden Arbeitslast wird nicht automatisch optimiert, da die automatische Abstimmung von Dataproc Serverless den Arbeitslastverlauf zur Optimierung verwendet.
  • Das Verkleinern des Arbeitsspeichers wird nicht unterstützt.
  • Die automatische Abstimmung wird nicht rückwirkend auf ausgeführte Arbeitslasten angewendet, sondern nur auf neu eingereichte Arbeitslastkohorten.

Kohorten automatisch abstimmen

Die automatische Abstimmung wird auf wiederkehrende Ausführungen einer Batcharbeitslast angewendet, die als Kohorten bezeichnet wird. Der Kohortenname, den Sie beim Senden einer Arbeitslast angeben, kennzeichnet sie als eine der aufeinanderfolgenden Ausführungen der wiederkehrenden Arbeitslast. Wir empfehlen die Verwendung von Kohortennamen, die den Arbeitslasttyp beschreiben oder auf andere Weise dabei helfen, 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.

Szenarien für die automatische Abstimmung

Sie wenden die serverlose automatische Abstimmung von Dataproc auf Ihre Arbeitslast an. Dazu wählen Sie eines oder mehrere der folgenden Szenarien für die automatische Abstimmung aus:

  • MEMORY: Die Spark-Arbeitsspeicherzuweisung wird automatisch abgestimmt, um potenzielle Fehler aufgrund von unzureichendem Arbeitsspeicher vorherzusagen und zu vermeiden. Beheben Sie eine zuvor aufgrund eines OOM-Fehlers (Nicht genügend Arbeitsspeicher) fehlgeschlagene Arbeitslast.
  • SCALING: Konfigurationseinstellungen für das Autoscaling von Spark automatisch abstimmen.
  • BHJ: Spark-Konfigurationseinstellungen automatisch abstimmen, um die Leistung des SQL-Broadcast-Join zu optimieren.

Preise

Die serverlose automatische Abstimmung von Dataproc Serverless wird in der Vorabversion ohne zusätzliche Kosten angeboten. Es gelten die standardmäßigen Dataproc Serverless-Preise.

Regionale Verfügbarkeit

Sie können die serverlose automatische Abstimmung von Dataproc mit Batches verwenden, die in verfügbaren Compute Engine-Regionen gesendet werden.

Automatische Abstimmung von Dataproc Serverless verwenden

Sie können die serverlose automatische Abstimmung von Dataproc 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 die serverlose automatische Abstimmung von Dataproc für jede 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 zum Erstellen einer Batcharbeitslast auf Erstellen.

  3. Füllen Sie im Abschnitt Container die folgenden Felder für Ihre Spark-Arbeitslast aus:

    • Kohorte: Der Kohortenname, der den Batch als einen Teil einer Reihe wiederkehrender Arbeitslasten angibt. Die automatische Abstimmung 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.
    • Szenarien für die automatische Abstimmung: Ein oder mehrere Szenarien für die automatische Abstimmung zum Optimieren der Arbeitslast, z. B. BHJ, MEMORY und SCALING. Sie können die Szenarioauswahl bei jeder Einreichung einer Batch-Kohorte ändern.
  4. Füllen Sie die anderen Abschnitte der Seite Batch erstellen nach Bedarf aus und klicken Sie dann auf Senden. Weitere Informationen zu diesen Feldern finden Sie unter Batcharbeitslast senden.

gcloud

Führen Sie den folgenden gcloud dataproc batches submit-Befehl der gcloud CLI lokal in einem Terminalfenster oder in Cloud Shell aus, um die serverlose automatische Abstimmung von Dataproc bei jeder Übermittlung einer wiederkehrenden Batcharbeitslast zu aktivieren.

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 ist die Region, in der die Arbeitslast ausgeführt wird.
  • COHORT: Der Name der Kohorten, der den Batch als einen Teil einer Reihe wiederkehrender Arbeitslasten identifiziert. Die automatische Abstimmung 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 Automatische Abstimmungsszenarien, die zum Optimieren der Arbeitslast verwendet werden sollen, z. B. --autotuning-scenarios=OOM,MEMORY,SCALING. Sie können die Szenarioliste bei jeder Einreichung einer Batch-Kohorte ändern.

API

Senden Sie eine batches.create-Anfrage mit den folgenden Feldern, um die serverlose automatische Abstimmung von Dataproc bei jeder Einreichung einer wiederkehrenden Batcharbeitslast zu aktivieren:

  • RuntimeConfig.cohort: der Name der Kohorte, der den Batch als einen Teil einer Reihe wiederkehrender Arbeitslasten angibt. Die automatische Abstimmung 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 Szenarien für die automatische Abstimmung, die zum Optimieren der Arbeitslast verwendet werden sollen, z. B. BHJ, MEMORY und SCALING. Sie können die Szenarioliste bei jeder Einreichung einer Batch-Kohorte ändern.

Beispiel:

...
runtimeConfig:
  cohort: TPCH-Query1
  autotuningConfig:
    scenarios:
    - BHJ
    - MEMORY
    - SCALING
...

Änderungen der automatischen Abstimmung ansehen

Führen Sie den Befehl gcloud dataproc batches describe aus, um Änderungen der automatischen Abstimmung von Dataproc Serverless für eine Batcharbeitslast aufzurufen.

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 neuesten Änderungen der automatischen Abstimmung, die auf eine laufende, abgeschlossene oder fehlgeschlagene Arbeitslast angewendet wurden, in der Google Cloud Console auf der Seite Batchdetails auf dem Tab Untersuchen ansehen.

Prüfungsbereich für automatische Abstimmung.