Managed Service for Apache Spark verwendet Spark-Attribute, um die Rechen-, Arbeitsspeicher- und Speicherressourcen zu bestimmen, die Ihrer Batcharbeitslast zugewiesen werden sollen. Diese Property-Einstellungen wirken sich auf den Kontingentverbrauch und die Kosten von Arbeitslasten aus. Weitere Informationen finden Sie unter Kontingente für Managed Service for Apache Spark und Preise für Managed Service for Apache Spark.
Informationen zum Konfigurieren von Attributen, die die Messwerterfassung steuern, finden Sie unter Spark-Messwerte.
Attribute für Spark-Batcharbeitslasten festlegen
Sie können Spark-Properties angeben, wenn Sie eine Managed Service for Apache Spark-Batcharbeitslast über die Google Cloud Console, die gcloud CLI oder die Dataproc API senden.
Console
Rufen Sie in der Google Cloud Console die Seite Jobs für Managed Service for Apache Spark auf und klicken Sie auf Job senden, um die Seite Job senden zu öffnen.
Prüfen Sie, ob unter Computing-Typ für Job auswählen die Option Serverloses Spark ausgewählt ist.
Klicken Sie im Abschnitt Jobausführung und -eigenschaften unter Spark-Eigenschaften auf Attribut hinzufügen (oder klicken Sie im Abschnitt Details zum serverlosen Job auf der Karte Zusammenfassung des Laufzeitprofils auf Konfigurieren, maximieren Sie Zusätzliche Konfiguration, klicken Sie neben Weitere Anpassungen auf Bearbeiten und klicken Sie unter Spark-Eigenschaften auf Attribut hinzufügen).
Geben Sie den Schlüssel (Name) und den Wert eines unterstützten Spark-Attributs ein.
gcloud
Im Folgenden finden Sie ein Beispiel für die Batchübermittlung mit der gcloud CLI. Mehrere Attribute werden durch Kommas getrennt.
gcloud dataproc batches submit spark \ --properties=spark.checkpoint.compress=true,spark.driver.cores=8 \ --region=REGION \ other args ...
API
Legen Sie RuntimeConfig.properties mit unterstützten Spark-Properties als Teil einer batches.create-Anfrage fest.
Unterstützte Spark-Attribute
Managed Service for Apache Spark unterstützt die meisten Spark-Attribute, aber keine YARN- und Shuffle-bezogenen Spark-Attribute wie spark.master=yarn und spark.shuffle.service.enabled. Wenn im Spark-Anwendungscode ein YARN- oder Shuffle-Attribut festgelegt wird, schlägt die Anwendung fehl.
Eigenschaften der Laufzeitumgebung
Managed Service for Apache Spark unterstützt die folgenden benutzerdefinierten Spark-Properties zum Konfigurieren der Laufzeitumgebung:
| Attribut | Beschreibung |
|---|---|
spark.dataproc.driverEnv.ENVIRONMENT_VARIABLE_NAME |
Fügen Sie dem Treiberprozess ENVIRONMENT_VARIABLE_NAME hinzu. Sie können mehrere Umgebungsvariablen angeben. |
spark.executorEnv.ENVIRONMENT_VARIABLE_NAME |
Fügen Sie dem Executor-Prozess ENVIRONMENT_VARIABLE_NAME hinzu. Sie können mehrere Umgebungsvariablen angeben. |
Eigenschaft „Tier“
| Attribut | Beschreibung | Standard |
|---|---|---|
dataproc.tier |
Die Stufe, auf der eine Batcharbeitslast ausgeführt wird, entweder standard oder premium (siehe Stufen von Managed Service for Apache Spark). Interaktive Sitzungen werden immer in der Premium-dataproc.tier ausgeführt.
|
|
Engine- und Laufzeitattribute
| Attribut | Beschreibung | Standard |
|---|---|---|
spark.dataproc.engine |
Die Engine, die zum Ausführen der Batcharbeitslast oder der interaktiven Sitzung verwendet werden soll: entweder lightningEngine (siehe Lightning Engine) oder die default-Engine.
|
|
spark.dataproc.lightningEngine.runtime |
Die Laufzeit, die verwendet werden soll, wenn die Lightning Engine für eine Batch-Arbeitslast oder eine interaktive Sitzung ausgewählt ist: default oder native (Native Query Execution).
|
default |
Eigenschaften der Ressourcenzuweisung
In Laufzeiten ab Version 4.0 verwenden der Treiber und die Executors standardmäßig die highmem-Speicherform, die ihren Speicher bestimmt. Ein Treiber oder Executor verwendet keine Speicherform, wenn Sie den Speicher oder den Speicher-Overhead festlegen oder wenn er einen GPU-Beschleuniger verwendet. Weitere Informationen finden Sie unter Anwendung von Arbeitsspeicherformen.
Managed Service for Apache Spark unterstützt die folgenden Spark-Properties zum Konfigurieren der Ressourcenzuweisung:
| Attribut | Beschreibung | Standard | Beispiele |
|---|---|---|---|
spark.driver.cores |
Die Anzahl der Kerne (vCPUs), die dem Spark-Treiber zugewiesen werden sollen.
Zulässige Werte: 4, 8, 16. |
4 |
|
spark.driver.memory |
Die Größe des Arbeitsspeichers, der dem Spark-Treiberprozess zugewiesen werden soll, angegeben im JVM-Speicherstringformat mit einem Suffix für die Größeneinheit („m“, „g“ oder „t“). Gesamter Treiberspeicher pro Treiberkern, einschließlich Treiberspeicher-Overhead, der für die Standard-Rechenstufe zwischen |
512m, 2g |
|
spark.driver.memoryOverhead |
Die Menge an zusätzlichem JVM-Speicher, die dem Spark-Treiberprozess zugewiesen werden soll, angegeben im JVM-Speicherstringformat mit einem Suffix für die Größeneinheit („m“, „g“ oder „t“). Dies ist ein Nicht-Heap-Speicher, der mit JVM-Overheads, internen Strings und anderen nativen Overheads verknüpft ist. Er umfasst den von anderen Treiberprozessen wie PySpark-Treiberprozessen verwendeten Speicher und den von anderen Nicht-Treiberprozessen im Container verwendeten Speicher.
Die maximale Arbeitsspeichergröße des Containers, in dem der Treiber ausgeführt wird, wird durch die Summe von Der Gesamttreiberspeicher pro Treiberkern, einschließlich des Treiberspeicher-Overheads, muss für die Standard-Rechenstufe zwischen |
10 % des Treiberspeichers, mit Ausnahme von PySpark-Batcharbeitslasten, die standardmäßig 40 % des Treiberspeichers verwenden | 512m, 2g |
spark.driver.memoryOverheadFactor |
Wird nur in Laufzeiten ab Version 4.0 unterstützt. Der Anteil des Treiberspeichers, der als Treiberspeicher-Overhead zugewiesen werden soll, wenn Wenn der Treiber eine Speicherform verwendet, bestimmt dieses Attribut, wie der Speicher der Speicherform zwischen |
0.1, mit Ausnahme von PySpark-Batcharbeitslasten, für die standardmäßig 0.4 verwendet wird |
0.2, 0.3 |
spark.dataproc.driver.memory.shape |
Wird nur in Laufzeiten ab Version 4.0 unterstützt. Die Speicherform des Treibers, entweder Sie können dieses Attribut nicht zusammen mit |
highmem |
highmem, standard |
spark.dataproc.driver.compute.tier |
Wird nur in Laufzeiten der Version 3.0 und früher unterstützt. Die Computing-Stufe, die für den Treiber verwendet werden soll.
Die Premium-Computing-Stufe bietet eine höhere Leistung pro Kern, wird aber zu einem höheren Preis abgerechnet. Verwenden Sie in Laufzeiten ab Version 4.0 stattdessen das Attribut dataproc.tier. |
Standard | Standard, Premium |
spark.dataproc.driver.disk.size |
Der dem Treiber zugewiesene Speicherplatz, angegeben mit einem Suffix für die Größeneinheit („k“, „m“, „g“ oder „t“).
Muss mindestens 250GiB sein.
Wenn die Premium-Laufwerksstufe im Treiber ausgewählt ist, sind die gültigen Größen 375g, 750g, 1500g, 3000g, 6000g oder 9000g. Wenn die Premium-Laufwerksstufe und 16 Treiberkerne ausgewählt sind, beträgt die Mindestlaufwerksgröße 750 GB.
In Laufzeiten ab Version 4.0 bestimmt die Stufe der Arbeitslast die Standardlaufwerksgröße des Treibers. Weitere Informationen finden Sie unter Standardlaufwerksgröße. |
|
1024g, 2t |
spark.dataproc.driver.disk.tier |
Wird nur in Laufzeiten der Version 3.0 und früher unterstützt. Die Speicherstufe, die für den lokalen und Shuffle-Speicher auf dem Treiber verwendet werden soll.
Die Premium-Laufwerkstufe bietet eine bessere Leistung bei IOPS und Durchsatz, wird aber zu einem höheren Preis abgerechnet. Wenn die Premium-Laufwerksstufe auf dem Treiber ausgewählt ist, muss auch die Premium-Computing-Stufe mit spark.dataproc.driver.compute.tier=premium ausgewählt werden. Außerdem muss die Menge an Speicherplatz mit spark.dataproc.driver.disk.size angegeben werden.
Wenn die Premium-Laufwerksstufe ausgewählt ist, weist der Treiber zusätzliche 50 GiB Speicherplatz für den Systemspeicher zu, der nicht von Nutzeranwendungen verwendet werden kann. Verwenden Sie in Laufzeiten ab Version 4.0 stattdessen das Attribut |
Standard | Standard, Premium |
spark.executor.cores |
Die Anzahl der Kerne (vCPUs), die jedem Spark-Executor zugewiesen werden sollen.
Zulässige Werte: 4, 8, 16. |
4 |
|
spark.executor.memory |
Die Größe des Arbeitsspeichers, der jedem Spark-Executor-Prozess zugewiesen werden soll, angegeben im JVM-Arbeitsspeicher-Stringformat mit einem Suffix für die Größeneinheit („m“, „g“ oder „t“). Der gesamte Executor-Arbeitsspeicher pro Executor-Kern, einschließlich des Executor-Arbeitsspeicher-Overheads, muss für die Standard-Compute-Stufe zwischen |
512m, 2g |
|
spark.executor.memoryOverhead |
Die Menge an zusätzlichem JVM-Arbeitsspeicher, die dem Spark-Executor-Prozess zugewiesen werden soll, angegeben im JVM-Arbeitsspeicher-Stringformat mit einem Suffix für die Größeneinheit („m“, „g“ oder „t“). Dies ist ein Nicht-Heap-Speicher, der für JVM-Overheads, interne Strings und andere native Overheads verwendet wird. Er umfasst den PySpark-Executor-Speicher und den Speicher, der von anderen Nicht-Executor-Prozessen verwendet wird, die im Container ausgeführt werden.
Die maximale Arbeitsspeichergröße des Containers, in dem der Executor ausgeführt wird, wird durch die Summe von Der gesamte Executor-Arbeitsspeicher pro Executor-Kern, einschließlich des Executor-Arbeitsspeicher-Overheads, muss für die Standard-Compute-Stufe zwischen |
10 % des Executor-Arbeitsspeichers, mit Ausnahme von PySpark-Batch-Arbeitslasten, die standardmäßig 40 % des Executor-Arbeitsspeichers verwenden | 512m, 2g |
spark.executor.memoryOverheadFactor |
Wird nur in Laufzeiten ab Version 4.0 unterstützt. Der Anteil des Executor-Arbeitsspeichers, der als Executor-Arbeitsspeicher-Overhead zugewiesen werden soll, wenn Wenn die Executors eine Speicherform verwenden, bestimmt dieses Attribut, wie der Speicher der Speicherform zwischen |
0.1, mit Ausnahme von PySpark-Batcharbeitslasten, für die standardmäßig 0.4 verwendet wird |
0.2, 0.3 |
spark.dataproc.executor.memory.shape |
Wird nur in Laufzeiten ab Version 4.0 unterstützt. Die Speicherform der Executors, entweder Sie können dieses Attribut nicht zusammen mit |
highmem |
highmem, standard |
spark.dataproc.executor.compute.tier |
Wird nur in Laufzeiten der Version 3.0 und früher unterstützt. Die Computing-Stufe, die für die Executors verwendet werden soll.
Die Premium-Computing-Stufe bietet eine höhere Leistung pro Kern, wird aber zu einem höheren Preis abgerechnet. Verwenden Sie in Laufzeiten ab Version 4.0 stattdessen das Attribut dataproc.tier. |
Standard | Standard, Premium |
spark.dataproc.executor.disk.size |
Der jedem Executor zugewiesene Speicherplatz, angegeben mit einem Suffix für die Größeneinheit („k“, „m“, „g“ oder „t“).
Der Speicherplatz des Executors kann für Shuffle-Daten und zum Bereitstellen von Abhängigkeiten verwendet werden. Muss mindestens 250GiB sein.
Wenn die Premium-Laufwerksstufe auf dem Executor ausgewählt ist, sind die gültigen Größen 375g, 750g, 1500g, 3000g, 6000g oder 9000g. Wenn die Premium-Laufwerksstufe und 16 Executor-Kerne ausgewählt sind, beträgt die Mindestlaufwerksgröße 750 g.
In Laufzeiten ab Version 4.0 bestimmt die Stufe der Arbeitslast die Standardlaufwerksgröße jedes Executors. Weitere Informationen finden Sie unter Standardlaufwerksgröße. |
|
1024g, 2t |
spark.dataproc.executor.disk.tier |
Wird nur in Laufzeiten der Version 3.0 und früher unterstützt. Die Laufwerksstufe, die für lokalen und Shuffle-Speicher auf Executors verwendet werden soll.
Die Premium-Laufwerkstufe bietet eine bessere Leistung bei IOPS und Durchsatz, wird aber zu einem höheren Preis abgerechnet. Wenn die Premium-Laufwerksstufe auf dem Executor ausgewählt ist, muss auch die Premium-Rechenstufe mit spark.dataproc.executor.compute.tier=premium ausgewählt und die Menge an Speicherplatz mit spark.dataproc.executor.disk.size angegeben werden.
Wenn die Premium-Laufwerkstufe ausgewählt ist, wird jedem Executor ein zusätzlicher Speicherplatz von 50 GiB für den Systemspeicher zugewiesen, der von Nutzeranwendungen nicht verwendet werden kann. Verwenden Sie in Laufzeiten ab Version 4.0 stattdessen das Attribut |
Standard | Standard, Premium |
spark.executor.instances |
Die anfängliche Anzahl der zuzuweisenden Executors. Nach dem Start einer Batcharbeitslast kann die Anzahl der aktiven Executors durch Autoscaling geändert werden. Muss mindestens 2 und höchstens 2000 sein. |
Autoscaling-Attribute
Eine Liste der Spark-Attribute, mit denen Sie das Autoscaling von Managed Service for Apache Spark konfigurieren können, finden Sie unter Spark-Attribute für die dynamische Zuordnung.
Logging-Eigenschaften
| Attribut | Beschreibung | Standard | Beispiele |
|---|---|---|---|
spark.log.level |
Wenn diese Option festgelegt ist, werden alle benutzerdefinierten Logeinstellungen überschrieben. Dies hat die Auswirkung eines Aufrufs von SparkContext.setLogLevel() beim Spark-Start. Gültige Logebenen sind: ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE und WARN. |
INFO, DEBUG |
|
spark.executor.syncLogLevel.enabled |
Wenn der Wert auf true gesetzt ist, wird die mit der Methode SparkContext.setLogLevel() angewendete Logebene an alle Executors weitergegeben. |
false |
true, false |
spark.log.level.PackageName |
Wenn diese Option festgelegt ist, werden alle benutzerdefinierten Logeinstellungen überschrieben. Dies hat die Wirkung eines Aufrufs von SparkContext.setLogLevel(PackageName, level) beim Start von Spark. Gültige Logebenen sind: ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE und WARN. |
spark.log.level.org.apache.spark=error |
Planungseigenschaften
| Attribut | Beschreibung | Standard | Beispiele |
|---|---|---|---|
spark.scheduler.excludeShuffleSkewExecutors |
Schließen Sie beim Planen Executor mit verzerrten Shuffle-Maps aus. Dadurch können lange Wartezeiten beim Abrufen von Shuffle-Daten reduziert werden, die durch eine Verzerrung beim Shuffle-Schreiben verursacht werden. | false |
true |
spark.scheduler.shuffleSkew.minFinishedTasks |
Mindestanzahl abgeschlossener Shuffle-Map-Aufgaben auf einem Executor, die als Schiefe behandelt werden sollen. | 10 |
100 |
spark.scheduler.shuffleSkew.maxExecutorsNumber |
Maximale Anzahl von Executors, die als Schiefe behandelt werden sollen. Verzerrte Executors werden von der aktuellen Planungsrunde ausgeschlossen. | 5 | 10 |
spark.scheduler.shuffleSkew.maxExecutorsRatio |
Maximales Verhältnis der Gesamtzahl der Executors, die als Schiefe behandelt werden sollen. Verzerrte Executors werden von der Planung ausgeschlossen. | 0,05 | 0.1 |
spark.scheduler.shuffleSkew.ratio |
Ein Vielfaches der durchschnittlichen abgeschlossenen Shuffle-Map-Aufgaben auf einem Executor, die als Schiefe behandelt werden sollen. | 1,5 | 2.0 |
Weitere Eigenschaften
| Attribut | Beschreibung |
|---|---|
dataproc.diagnostics.enabled |
**Nur in Laufzeiten der Version 2.3 und früher unterstützt**. Aktivieren Sie dieses Attribut, um eine Diagnose bei einem Fehler oder Abbruch einer Batcharbeitslast auszuführen. Wenn die Diagnose aktiviert ist, verwendet Ihre Batcharbeitslast nach Abschluss der Arbeitslast weiterhin Rechenressourcen, bis die Diagnose abgeschlossen ist. Ein URI, der auf den Speicherort der TAR-Diagnosedatei verweist, wird im API-Feld Batch.RuntimeInfo.diagnosticOutputUri aufgeführt. |
dataproc.gcsConnector.version |
**Nur in Laufzeiten der Version 2.3 und früher unterstützt**. Mit diesem Attribut können Sie ein Upgrade auf eine Cloud Storage-Connector-Version durchführen, die sich von der Version unterscheidet, die mit der Laufzeitversion Ihrer Batcharbeitslast installiert wurde. |
dataproc.sparkBqConnector.version |
**Nur in Laufzeiten der Version 2.3 und früher unterstützt**. Verwenden Sie dieses Attribut, um ein Upgrade auf eine Spark BigQuery-Connector-Version durchzuführen, die sich von der Version unterscheidet, die mit der Laufzeitversion Ihrer Batcharbeitslast installiert wurde (siehe BigQuery-Connector mit Managed Service for Apache Spark verwenden). |
dataproc.profiling.enabled |
**Nur in Laufzeiten der Version 2.3 und früher unterstützt**. Legen Sie dieses Attribut auf true fest, um die Profilerstellung für die Managed Service for Apache Spark-Arbeitslast zu aktivieren. |
dataproc.profiling.name |
**Nur in Laufzeiten der Version 2.3 und früher unterstützt** Verwenden Sie dieses Attribut, um den Namen festzulegen, der zum Erstellen eines Profils im Profiler-Dienst verwendet wird. |
spark.jars |
Verwenden Sie dieses Attribut, um die durch Kommas getrennte Liste der JAR-Dateien festzulegen, die in die Treiber- und Executor-Klassenpfade aufgenommen werden sollen. |
spark.archives |
Verwenden Sie dieses Attribut, um die durch Kommas getrennte Liste der Archive festzulegen, die in das Arbeitsverzeichnis jedes Executors extrahiert werden sollen. .jar, .tar.gz, .tgz und .zip werden unterstützt. Fügen Sie dieses Attribut für serverlose interaktive Sitzungen hinzu, wenn Sie eine interaktive Sitzung oder ein Laufzeitprofil (Sitzungsvorlage) erstellen. |
dataproc.artifacts.remove |
Mit diesem Attribut können Sie Standardartefakte entfernen, die auf Managed Service for Apache Spark-Laufzeiten installiert sind.
Unterstützte Artefakte sind conscrypt, delta-lake, iceberg, rapids und spark-bigquery-connector. |