In diesem Dokument erfahren Sie, wie Sie die Leistungsverbesserungen von Managed Service for Apache Spark aktivieren, damit Ihre Managed Service for Apache Spark-Jobs mehr Daten in kürzerer Zeit und zu geringeren Kosten verarbeiten können.
Zu den Leistungsverbesserungen von Managed Service for Apache Spark gehören:
- Verbesserungen am Spark-Optimierer:
- Optimierungsregeln für bessere Spark-Pläne
- Verbesserte Leistung des BigQuery-Connectors von Managed Service for Apache Spark bei Verwendung in Spark-Jobs
- Verbesserungen bei der Spark-Ausführung:
- Verbesserungen der Spark-Ausführungs-Engine
Weitere Leistungsverbesserungen für Managed Service for Apache Spark: Informationen zum Cluster-Caching für Managed Service for Apache Spark, mit dem sich die Zeit für den Zugriff auf Daten in Cloud Storage reduzieren lässt.
Sie können Spark-Leistungsverbesserungen für einen Cluster oder einen Spark-Job aktivieren:
Spark-Leistungsverbesserungen, die für einen Cluster aktiviert sind, gelten standardmäßig für alle Spark-Jobs, die auf dem Cluster ausgeführt werden, unabhängig davon, ob sie an den Managed Service for Apache Spark oder direkt an den Cluster gesendet werden.
Spark-Leistungsverbesserungen können auch für einen Job aktiviert oder deaktiviert werden, der an Managed Service for Apache Spark gesendet wird. Die Einstellungen für Spark-Leistungsverbesserungen, die auf einen Job angewendet werden, überschreiben alle in Konflikt stehenden Einstellungen, die auf Clusterebene nur für den angegebenen Job festgelegt wurden.
Preise
Für Spark-Leistungsverbesserungen fallen keine zusätzlichen Gebühren an. Es gelten die standardmäßigen Preise für Managed Service for Apache Spark.
Hinweise
Bei Spark-Leistungsverbesserungen werden Spark-Attribute angepasst, darunter die folgenden:
spark.sql.shuffle.partitions: Bei Spark-Leistungsverbesserungen wird dieses Attribut für Cluster mit der Image-Version2.2auf1000gesetzt. Diese Einstellung kann kleine Jobs verlangsamen.spark.dataproc.sql.catalog.file.index.stats.enabled: Diese Einstellung kann zu OOM-Bedingungen (Out-Of-Memory) des Treibers führen, wenn die Anzahl der Hive-Partitionen hoch ist. Durch Deaktivieren dieses Attributs kann der OOM-Zustand behoben werden.
Optimierungen bei der Clustererstellung aktivieren
Sie können die Google Cloud Console, die Google Cloud CLI und die Dataproc API verwenden, um die Leistungsverbesserungen von Managed Service for Apache Spark zu aktivieren, wenn Sie einen Managed Service for Apache Spark-Cluster mit den Image-Versionen 2.0.69+, 2.1.17+, 2.2.0+ und höheren Image-Releases erstellen.
Console
- Öffnen Sie in der Google Cloud Console die Seite Cluster erstellen.
- Klicken Sie auf Zusätzliche Konfiguration, um den Bereich zu maximieren.
- Bearbeiten Sie Anpassung und Sonstiges.
- Fügen Sie im Abschnitt Clusterattribute die folgenden Attribute hinzu:
- So aktivieren Sie Spark-Optimierungsverbesserungen:
- Klicken Sie auf + Eigenschaften hinzufügen.
- Wählen Sie in der Liste Präfix die Option spark aus.
- Geben Sie
spark.dataproc.enhanced.optimizer.enabledin das Feld Schlüssel undtruein das Feld Wert ein.
- So aktivieren Sie die Spark-Ausführungsverbesserungen:
- Klicken Sie auf + Eigenschaften hinzufügen.
- Wählen Sie in der Liste Präfix die Option spark aus.
- Geben Sie
spark.dataproc.enhanced.execution.enabledin das Feld Schlüssel undtruein das Feld Wert ein.
- So aktivieren Sie Spark-Optimierungsverbesserungen:
- Füllen Sie die anderen Clusterfelder aus und klicken Sie dann auf Cluster erstellen.
gcloud
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 darf bis zu 51 Kleinbuchstaben, Ziffern und Bindestriche enthalten. Es darf nicht mit einem Bindestrich enden. 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 befindet, z. B.
us-central1.- Sie können das optionale Flag
--zone=ZONEhinzufügen, um eine Zone innerhalb der angegebenen Region anzugeben, z. B.us-central1-a. Wenn Sie keine Zone angeben, wählt die Funktion Automatische Zonenplatzierung von Managed Service for Apache Spark eine Zone in der angegebenen Region aus.
- Sie können das optionale Flag
- IMAGE: Die Optimierungs- und Ausführungsleistungsverbesserungen von Managed Service for Apache Spark sind in den Managed Service for Apache Spark-Image-Versionen
2.0.69+und2.1.17+sowie in späteren Releases verfügbar. Wenn Sie dieses Flag weglassen, wählt Managed Service for Apache Spark die neueste Subminor-Version des Standard-Managed Service for Apache Spark-Images für den Cluster aus (siehe Standard-Managed Service for Apache Spark-Image-Version). PROPERTIES:
- Geben Sie Folgendes an, um die Spark-Optimierungsverbesserungen zu aktivieren:
spark:spark.dataproc.enhanced.optimizer.enabled=true- Geben Sie Folgendes an, um die Spark-Ausführungsverbesserungen zu aktivieren:
spark:spark.dataproc.enhanced.execution.enabled=true- Geben Sie Folgendes an, um die Spark-Optimierung und die Ausführungsverbesserungen zu aktivieren:
spark:spark.dataproc.enhanced.optimizer.enabled=true,spark:spark.dataproc.enhanced.execution.enabled=true
API
Geben Sie im Rahmen einer
clusters.create-Anfrage die folgendenSoftwareConfig.propertiesan:- Geben Sie Folgendes an, um die Spark-Optimierungsverbesserungen zu aktivieren:
"spark:spark.dataproc.enhanced.optimizer.enabled": "true"- Geben Sie Folgendes an, um die Spark-Ausführungsverbesserungen 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"
Optimierungen beim Senden von Jobs aktivieren oder deaktivieren
Sie können die Google Cloud Console, die Google Cloud CLI und die Dataproc API verwenden, um Spark-Leistungsverbesserungen für einen Spark-Job zu aktivieren oder zu deaktivieren, der an Managed Service for Apache Spark gesendet wurde.
Console
- Öffnen Sie in der Google Cloud Console die Seite Jobs.
- Klicken Sie auf der Seite Jobs auf Job senden und scrollen Sie dann zum Abschnitt Attribute des Jobs.
- So aktivieren Sie die Spark-Optimierungsverbesserungen:
- Klicken Sie auf + Eigenschaften hinzufügen. Fügen Sie „spark.dataproc.enhanced.optimizer.enabled“ in das Feld Schlüssel und „true“ in das Feld Wert ein.
- So aktivieren Sie die Spark-Ausführungsverbesserungen:
- Klicken Sie auf + Eigenschaften hinzufügen.
- Geben Sie „spark.dataproc.enhanced.execution.enabled“ in das Feld Schlüssel und „true“ in das Feld Wert ein.
- So aktivieren Sie die Spark-Optimierungsverbesserungen:
- Füllen Sie die anderen Felder für die Jobübermittlung aus oder bestätigen Sie sie und klicken Sie dann auf Senden.
gcloud
Führen Sie den folgenden gcloud dataproc jobs submit-Befehl 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-sqloderspark-ran. - 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 Spark-Optimierungsverbesserungen zu aktivieren:
spark.dataproc.enhanced.optimizer.enabled=true- Geben Sie Folgendes an, um die Spark-Ausführungsverbesserungen zu aktivieren:
spark.dataproc.enhanced.execution.enabled=true- Geben Sie Folgendes an, um die Spark-Optimierung und die Ausführungsverbesserungen zu aktivieren:
spark.dataproc.enhanced.optimizer.enabled=true,spark.dataproc.enhanced.execution.enabled=true
- SPARK_JOB_TYPE: Geben Sie
API
Geben Sie die folgenden
propertiesfür einen SparkJob, PySparkJob, SparkSqlJob oder SparkRJob als Teil einerjobs.submit-Anfrage an:- Geben Sie Folgendes an, um die Spark-Optimierungsverbesserungen zu aktivieren:
"spark.dataproc.enhanced.optimizer.enabled=true"- Geben Sie Folgendes an, um die Spark-Ausführungsverbesserungen zu aktivieren:
"spark.dataproc.enhanced.execution.enabled=true"- Geben Sie Folgendes an, um die Spark-Optimierung und die Ausführungsverbesserungen zu aktivieren:
"spark.dataproc.enhanced.execution.enabled=true,spark.dataproc.enhanced.optimizer.enabled=true"