Leistungsverbesserungen von Dataproc Spark

In diesem Dokument erfahren Sie, wie Sie die Leistungsverbesserungen von Dataproc Spark aktivieren können, damit Ihre Dataproc Spark-Jobs mehr Daten in kürzerer Zeit und mit geringeren Kosten verarbeiten können.

Zu den Leistungsverbesserungen von Dataproc Spark gehören:

  • Verbesserungen an der Spark-Optimierung:
    • Optimierungsregeln für bessere Spark-Pläne
    • Verbesserte Leistung des BigQuery-Connectors für Dataproc bei Verwendung in Spark-Jobs
  • Verbesserungen bei Spark Execution:
    • Verbesserungen der Spark-Ausführungs-Engine

Weitere Dataproc-Leistungsverbesserungen: Sehen Sie sich die Informationen zum Cluster-Caching von Dataproc an, mit denen der Zeitaufwand für den Zugriff auf Daten in Cloud Storage reduziert wird.

So aktivieren Sie Leistungsverbesserungen von Dataproc Spark

Sie können die Google Cloud Console, Google Cloud CLI und die Dataproc API verwenden, um Dataproc Spark-Leistungsverbesserungen zu aktivieren, wenn Sie einen Dataproc in Compute Engine-Cluster erstellen oder Ihren Spark-Job an den Cluster senden.

Console

Verbesserungen bei der Clustererstellung aktivieren

Führen Sie die folgenden Schritte aus, um die Spark-Optimierung und -Ausführungsoptimierung zu aktivieren, wenn Sie einen Dataproc-Cluster erstellen. Aktivierte Verbesserungen bleiben für alle Spark-Jobs wirksam, die an den Cluster gesendet werden, es sei denn, Sie deaktivieren die Verbesserungen für einen bestimmten Job beim Senden des Jobs. Standardmäßig sind die Leistungsverbesserungen von Dataproc Spark in einem Dataproc-Cluster deaktiviert.

  1. Rufen Sie in der Google Cloud Console die Dataproc-Seite Cluster erstellen auf.
  2. Klicken Sie im Formular Dataproc-Cluster erstellen in der Zeile Cluster in Compute Engine auf Erstellen.
  3. Klicken Sie auf der Seite Dataproc-Cluster in Compute Engine erstellen auf das Steuerfeld Cluster anpassen und scrollen Sie zum Abschnitt Clustereigenschaften.
    1. So aktivieren Sie Verbesserungen bei der Spark-Optimierung:
      1. Klicken Sie auf + ATTRIBUTE HINZUFÜGEN.
      2. Wählen Sie spark in der Liste Präfix aus und fügen Sie "spark.dataproc.enhanced.optimize.enabled" in das Feld Schlüssel und "true" im Feld Wert ein.
    2. So aktivieren Sie Verbesserungen bei der Spark-Ausführung:
      1. Klicken Sie auf + ATTRIBUTE HINZUFÜGEN.
      2. Wählen Sie in der Liste Präfix den Eintrag spark aus und fügen Sie "spark.dataproc.enhanced.execute.enabled" in das Feld Schlüssel und "true" im Feld Wert ein.
  4. Füllen Sie die anderen Felder für die Clustererstellung aus oder bestätigen Sie sie und klicken Sie dann auf Erstellen.

Verbesserungen beim Senden von Jobs aktivieren

Führen Sie die folgenden Schritte aus, um Spark-Optimierungen und Ausführungsverbesserungen für einen Spark-Job zu aktivieren. Standardmäßig sind die Spark-Leistungsverbesserungen von Dataproc Spark bei Spark-Jobs deaktiviert, es sei denn, Sie aktivieren die Verbesserungen beim Erstellen eines Jobclusters oder für einen bestimmten Job.

  1. Rufen Sie in der Google Cloud Console die Dataproc-Seite Jobs auf.
  2. Klicken Sie auf der Seite Jobs auf Job senden und scrollen Sie zum Abschnitt Eigenschaften des Jobs.
    1. So aktivieren Sie Verbesserungen bei der Spark-Optimierung:
      1. Klicken Sie auf + ATTRIBUTE HINZUFÜGEN. Geben Sie in das Feld Schlüssel den Wert "spark.dataproc.enhanced.optimize.enabled" und in das Feld Wert den Wert "true" ein.
    2. So aktivieren Sie Verbesserungen bei der Spark-Ausführung:
      1. Klicken Sie auf + ATTRIBUTE HINZUFÜGEN.
      2. Geben Sie in das Feld Schlüssel den Wert „spark.dataproc.enhanced.‐Execution.enabled“ und in das Feld Wert „true“ ein.
  3. Füllen Sie die anderen Felder für das Senden des Jobs aus oder bestätigen Sie sie und klicken Sie dann auf Submit (Senden).

gcloud

Verbesserungen bei der Clustererstellung aktivieren

Führen Sie die folgenden Schritte aus, um die Spark-Optimierung und -Ausführungsoptimierung zu aktivieren, wenn Sie einen Dataproc-Cluster erstellen. Aktivierte Verbesserungen bleiben für alle Spark-Jobs wirksam, die an den Cluster gesendet werden, es sei denn, Sie deaktivieren die Verbesserungen für einen bestimmten Job beim Senden des Jobs. Standardmäßig sind die Leistungsverbesserungen von Dataproc Spark in einem Dataproc-Cluster deaktiviert.

  1. Führen Sie den folgenden gcloud dataproc clusters create-Befehl lokal in einem Terminalfenster oder in Cloud Shell aus.

    gcloud dataproc clusters create CLUSTER_NAME \
        --project=PROJECT_ID \
        --region=REGION \
        --image-version=IMAGE \
        --properties=PROPERTIES
    

    Hinweise:

    • CLUSTER_NAME: Der Clustername, der innerhalb eines Projekts eindeutig sein muss. Der Name muss mit einem Kleinbuchstaben beginnen und kann bis zu 51 Kleinbuchstaben, Ziffern und Bindestriche enthalten. Das letzte Zeichen darf kein Bindestrich sein. Der Name eines gelöschten Clusters kann wiederverwendet werden.
    • PROJECT_ID: Das Projekt, das mit dem Cluster verknüpft werden soll.
    • REGION: Die Compute Engine-Region, in der sich der Cluster befinden wird, z. B. us-central1.
      • Sie können das optionale Flag --zone=ZONE hinzufügen, um eine Zone innerhalb der angegebenen Region anzugeben, z. B. us-central1-a. Wenn Sie keine Zone angeben, wählt die Dataproc-Funktion zur Autozonenplatzierung eine Zone mit der angegebenen Region aus.
    • IMAGE: Die Optimierung und die verbesserte Ausführungsleistung von Dataproc Spark sind in den Dataproc-Image-Versionen 2.0.69+ und 2.1.17+ und späteren Releases verfügbar. Wenn Sie dieses Flag weglassen, wählt Dataproc die neueste Sub-Minor-Version des Dataproc-Standard-Images in Compute Engine für den Cluster aus (siehe Standard-Dataproc-Image-Version).
    • PROPERTIES:

      • Geben Sie Folgendes an, um die Verbesserungen der Spark-Optimierung zu aktivieren:
      spark:spark.dataproc.enhanced.optimizer.enabled=true
      
      • Geben Sie Folgendes an, um Verbesserungen bei der Spark-Ausführung zu aktivieren:
      spark:spark.dataproc.enhanced.execution.enabled=true
      
      • Geben Sie Folgendes an, um die Spark-Optimierung und Ausführungsverbesserungen zu aktivieren:
      spark:spark.dataproc.enhanced.optimizer.enabled=true,spark:spark.dataproc.enhanced.execution.enabled=true
      
      

Verbesserungen beim Senden von Jobs aktivieren

Führen Sie die folgenden Schritte aus, um Spark-Optimierungen und Ausführungsverbesserungen für einen Spark-Job zu aktivieren. Standardmäßig sind die Spark-Leistungsverbesserungen von Dataproc Spark bei Spark-Jobs deaktiviert, es sei denn, Sie aktivieren die Verbesserungen beim Erstellen eines Jobclusters oder für einen bestimmten Job.

  1. Führen Sie den folgenden Befehl gcloud dataproc jobs submit lokal in einem Terminalfenster oder in Cloud Shell aus.

    gcloud dataproc jobs submit SPARK_JOB_TYPE \
        --cluster=CLUSTER_NAME \
        --region=REGION \
        --properties=PROPERTIES
    

    Hinweise:

    • SPARK_JOB_TYPE: Geben Sie spark, pyspark, spark-sql oder spark-r an .
    • CLUSTER_NAME: Der Name des Jobs, in dem der Job ausgeführt wird.
    • REGION: Die Region, in der sich der Cluster befindet.
    • PROPERTIES:

      • Geben Sie Folgendes an, um die Verbesserungen der Spark-Optimierung zu aktivieren:
      spark.dataproc.enhanced.optimizer.enabled=true
      
      • Geben Sie Folgendes an, um Verbesserungen bei der Spark-Ausführung zu aktivieren:
      spark.dataproc.enhanced.execution.enabled=true
      
      • Geben Sie Folgendes an, um die Spark-Optimierung und Ausführungsverbesserungen zu aktivieren:
      spark.dataproc.enhanced.optimizer.enabled=true,spark.dataproc.enhanced.execution.enabled
      

API

Verbesserungen bei der Clustererstellung aktivieren

Führen Sie die folgenden Schritte aus, um die Spark-Optimierung und -Ausführungsoptimierung zu aktivieren, wenn Sie einen Dataproc-Cluster erstellen. Aktivierte Verbesserungen bleiben für alle Spark-Jobs wirksam, die an den Cluster gesendet werden, es sei denn, Sie deaktivieren die Verbesserungen für einen bestimmten Job beim Senden des Jobs. Standardmäßig sind die Leistungsverbesserungen von Dataproc Spark in einem Dataproc-Cluster deaktiviert.

  1. Geben Sie das folgende SoftwareConfig.properties als Teil einer clusters.create-Anfrage an:

    • Geben Sie Folgendes an, um die Verbesserungen der Spark-Optimierung zu aktivieren:
    "spark:spark.dataproc.enhanced.optimizer.enabled": "true"
    
    • Geben Sie Folgendes an, um Verbesserungen bei der Spark-Ausführung zu aktivieren:
    "spark:spark.dataproc.enhanced.execution.enabled": "true"
    
    • Geben Sie Folgendes an, um die Spark-Optimierung und Ausführungsverbesserungen zu aktivieren:
    "spark:spark.dataproc.enhanced.optimizer.enabled": "true","spark:spark.dataproc.enhanced.execution.enabled": "true"
    

Verbesserungen beim Senden von Jobs aktivieren

Führen Sie die folgenden Schritte aus, um Spark-Optimierungen und Ausführungsverbesserungen für einen Spark-Job zu aktivieren. Standardmäßig sind die Spark-Leistungsverbesserungen von Dataproc Spark bei Spark-Jobs deaktiviert, es sei denn, Sie aktivieren die Verbesserungen beim Erstellen eines Jobclusters oder für einen bestimmten Job.

  1. Geben Sie die folgende properties für SparkJob, PySparkJob, SparkSqlJob oder SparkRJob als Teil einer jobs.submit-Anfrage an:

    • Geben Sie Folgendes an, um die Verbesserungen der Spark-Optimierung zu aktivieren:
    "spark.dataproc.enhanced.optimizer.enabled=true"
    
    • Geben Sie Folgendes an, um Verbesserungen bei der Spark-Ausführung zu aktivieren:
    "spark.dataproc.enhanced.execution.enabled=true"
    
    • Geben Sie Folgendes an, um die Spark-Optimierung und Ausführungsverbesserungen zu aktivieren:
    "spark.dataproc.enhanced.execution.enabled=true,spark.dataproc.enhanced.optimizer.enabled=true"