Dataproc Serverless nutzt Spark-Attribute, um Rechen-, Arbeitsspeicher- und Laufwerkressourcen, die der Batcharbeitslast zugewiesen werden sollen. Diese Attributeinstellungen können sich auf die Nutzung und Kosten von Arbeitslastkontingenten auswirken (siehe Dataproc Serverless-Kontingente und Weitere Informationen zu den Dataproc Serverless-Preisen Informationen).
Spark-Batcharbeitslast-Properties festlegen
Sie können Spark-Attribute angeben, wenn Sie Serverlose Spark-Batcharbeitslast von Dataproc senden über die Google Cloud Console, die gcloud CLI oder die Dataproc API.
Console
Rufen Sie in der Google Cloud Console die Seite Dataproc-Batch erstellen auf.
Klicken Sie im Bereich Eigenschaften auf Property hinzufügen und geben Sie
Key
(Name) undValue
von unterstütztes Spark-Attribut
gcloud
Beispiel für die Batchübermittlung an die gcloud CLI:
gcloud dataproc batches submit spark --properties=spark.checkpoint.compress=true \ --region=region \ other args ...
API
Festlegen RuntimeConfig.properties mit unterstützten Spark-Attributen als Teil eines batches.create
Unterstützte Spark-Attribute
Dataproc Serverless for Spark unterstützt die meisten Spark-Attribute,
unterstützt keine YARN- und Shuffle-bezogenen Spark-Attribute, z. B.
spark.master=yarn
und spark.shuffle.service.enabled
. Wenn Spark-Anwendung
eine YARN- oder Shuffle-Eigenschaft festlegt, schlägt die Anwendung fehl.
Attribute der Laufzeitumgebung
Dataproc Serverless for Spark unterstützt die folgenden benutzerdefinierten Spark-Attribute zum Konfigurieren der Laufzeitumgebung:
Attribut | Beschreibung |
---|---|
spark.dataproc.driverEnv.EnvironmentVariableName |
Fügen Sie dem Treiberprozess EnvironmentVariableName hinzu. Ich mehrere Umgebungsvariablen angeben. |
Attribute für Ressourcenzuweisung
Dataproc Serverless for Spark unterstützt die folgenden Spark-Attribute zur Konfiguration der Ressourcenzuweisung:
Attribut | Beschreibung | Standard | Beispiele |
---|---|---|---|
spark.driver.cores |
Die Anzahl der Kerne (vCPUs), die dem Spark-Treiber zugewiesen werden sollen.
Gültige Werte: 4 , 8 , 16 . |
4 |
|
spark.driver.memory |
Der Arbeitsspeicher, der dem Spark-Treiberprozess zugewiesen werden soll, im JVM-Speicherstringformat mit einem Suffix für die Größeneinheit („m“, „g“) angegeben oder „t“). Gesamttreiberarbeitsspeicher pro Treiberkern, einschließlich Treiberarbeitsspeicher-Overhead,
Dieser muss zwischen |
512m , 2g |
|
spark.driver.memoryOverhead |
Die Menge an zusätzlichem JVM-Speicher, die dem Spark-Treiberprozess zugewiesen werden soll. Sie wird im JVM-Speicher-Stringformat mit einem Suffix für die Größe angegeben („m“, „g“ oder „t“). Dabei handelt es sich um Nicht-Heap-Speicher,
der mit JVM-Overheads verbunden ist,
interne Strings und andere native Kosten.
Arbeitsspeicher, der von anderen Treiberprozessen wie PySpark-Treiberprozessen verwendet wird
und des Arbeitsspeichers, der von anderen
nicht Treiberprozessen im Container verwendet wird.
Die maximale Arbeitsspeichergröße des Containers, in dem der Treiber ausgeführt wird, beträgt
ermittelt durch die Summe von Gesamttreiberarbeitsspeicher pro Treiberkern, einschließlich Treiberarbeitsspeicher-Overhead,
muss zwischen |
10% des Treiberarbeitsspeichers, mit Ausnahme von PySpark-Batcharbeitslasten, die standardmäßig auf 40% des Treiberspeichers | 512m , 2g |
spark.dataproc.driver.compute.tier |
Die Computing-Stufe, die für den Treiber verwendet werden soll. Die Premium-Computing-Stufe bietet eine höhere Leistung pro Kern, wird zu einem höheren Preis abgerechnet. | Standard | Standard, Premium |
spark.dataproc.driver.disk.size |
Der dem Treiber zugewiesene Speicherplatz
mit einem Suffix für die Größeneinheit („k“, „m“, „g“ oder „t“) angegeben.
Muss mindestens 250GiB sein.
Wenn die Laufwerksstufe Premium für den Treiber ausgewählt ist, sind folgende Größen gültig:
375 g, 750 g, 1.500 g, 3.000 g, 6.000 g oder 9.000 g. |
100GiB pro Kern |
1024g , 2t |
spark.dataproc.driver.disk.tier |
Die Laufwerksstufe, die für den lokalen Speicher und den Shuffle-Speicher auf dem Treiber verwendet werden soll.
Die Laufwerksstufe Premium bietet eine bessere Leistung bei IOPS und Durchsatz, aber
wird zu einem höheren Preis abgerechnet. Wenn die Laufwerksstufe Premium für
des Treibers müssen Sie auch die Premium-Computing-Stufe mit
spark.dataproc.driver.compute.tier=premium ,
und der Speicherplatz muss mit
spark.dataproc.executor.disk.size .
Wenn die Laufwerksstufe Premium ausgewählt ist, weist der Treiber zusätzlich 50 GiB Festplattenspeicher für Systemspeicher, Nutzeranwendungen verwenden können. | Standard | Standard, Premium |
spark.executor.cores |
Die Anzahl der Kerne (vCPUs), die jedem Spark-Executor zugewiesen werden sollen.
Gültige Werte: 4 , 8 , 16 . |
4 |
|
spark.executor.memory |
Die Größe des Arbeitsspeichers, der jedem Spark-Executor-Prozess zugewiesen werden soll, im JVM-Speicherstringformat mit einem Suffix für die Größeneinheit ("m", "g" oder „t“). Gesamter Executor-Arbeitsspeicher pro Executor-Kern, einschließlich Executor-Arbeitsspeicher
muss zwischen |
512m , 2g |
|
spark.executor.memoryOverhead |
Die Menge an zusätzlichem JVM-Arbeitsspeicher, der dem Spark zugewiesen werden soll Executor-Prozess, angegeben im JVM-Speicherstringformat mit einer Größeneinheit Suffix („m“, „g“ oder „t“). Dabei handelt es sich um Nicht-Heap-Speicher,
der für JVM-Overheads, interne Zeichenfolgen,
und andere native Overheads. Dazu gehören PySpark-Executor-Arbeitsspeicher und
Arbeitsspeicher, der von anderen Prozessen ohne Executor verwendet wird, die im Container ausgeführt werden.
Die maximale Arbeitsspeichergröße des Containers, in dem der Executor ausgeführt wird, beträgt
ermittelt durch die Summe von Gesamter Executor-Arbeitsspeicher pro Executor-Kern, einschließlich Executor-Arbeitsspeicher
muss zwischen |
10 % des Executor-Arbeitsspeichers, mit Ausnahme von PySpark-Batch-Arbeitslasten, für die standardmäßig 40 % des Executor-Arbeitsspeichers verwendet werden | 512m , 2g |
spark.dataproc.executor.compute.tier |
Die Computing-Stufe, die für die Executors verwendet werden soll. Die Premium-Computing-Stufe bietet eine höhere Leistung pro Kern, wird zu einem höheren Preis abgerechnet. | Standard | Standard, Premium |
spark.dataproc.executor.disk.size |
Der Speicherplatz, der jedem Executor zugewiesen ist,
mit einem Suffix für die Größeneinheit („k“, „m“, „g“ oder „t“) angegeben.
Speicherplatz des Executors kann für Shuffle-Daten und zum Staging verwendet werden.
Abhängigkeiten. Muss mindestens 250GiB sein.
Wenn für den Executor die Laufwerksstufe Premium ausgewählt ist, sind folgende Größen zulässig:
375 g, 750 g, 1.500 g, 3.000 g, 6.000 g oder 9.000 g. |
100GiB pro Kern |
1024g , 2t |
spark.dataproc.executor.disk.tier |
Die Laufwerksstufe, die für den lokalen Speicher und den Shuffle-Speicher auf Executors verwendet werden soll.
Die Laufwerksstufe Premium bietet eine bessere Leistung bei IOPS und Durchsatz, aber
wird zu einem höheren Preis abgerechnet. Wenn die Laufwerksstufe Premium auf der
Executor muss auch die Premium-Computing-Stufe ausgewählt werden mit
spark.dataproc.executor.compute.tier=premium ,
und der Speicherplatz muss mit
spark.dataproc.executor.disk.size .
Wenn die Premium-Speicherebene ausgewählt ist, wird jedem Executor zusätzlich 50 GiB Speicherplatz für den Systemspeicher zugewiesen, der nicht von Nutzeranwendungen verwendet werden kann. | Standard | Standard, Premium |
spark.executor.instances |
Die anfängliche Anzahl der Executors, die zugewiesen werden sollen. Nach einer Batcharbeitslast
beginnt, kann Autoscaling die Anzahl der aktiven Executors ändern. Muss mindestens 2 und höchstens 2000 sein. |
Autoscaling-Attribute
Siehe Eigenschaften der dynamischen Zuordnung von Spark finden Sie eine Liste der Spark-Attribute, mit denen Sie Serverloses Autoscaling von Dataproc
Logging-Attribute
Attribut | Beschreibung | Standard | Beispiele |
---|---|---|---|
spark.log.level |
Überschreibt alle benutzerdefinierten Protokolleinstellungen mit der Auswirkung
einen Aufruf von SparkContext.setLogLevel() beim Spark-Start. Gültig
Zu den Logebenen gehören: ALL , DEBUG , ERROR ,
FATAL , INFO , OFF , TRACE ,
und WARN . |
INFO , DEBUG |
|
spark.executor.syncLogLevel.enabled |
Wenn dieser Wert auf true gesetzt ist, wird die Logebene
ist die Methode SparkContext.setLogLevel()
an alle Executors weitergegeben. |
false |
true , false |
spark.log.level.PackageName |
Überschreibt alle benutzerdefinierten Protokolleinstellungen
mit der Auswirkung eines Aufrufs von SparkContext.setLogLevel(PackageName, level)
bei Spark-Start-up. Gültige Logebenen: 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 bei der Planung verzerrte Executors für Shuffle-Karten aus, was die lange Wartezeiten beim Shuffle-Abruf, die durch eine Shuffle-Schreibverzerrung verursacht wurden. | false |
true |
spark.scheduler.shuffleSkew.minFinishedTasks |
Mindestanzahl der abgeschlossenen Shuffle-Map-Aufgaben in einem Executor um sie als Verzerrung zu behandeln. | 10 |
100 |
spark.scheduler.shuffleSkew.maxExecutorsNumber |
Maximale Anzahl von Executors, die als Verzerrung behandelt werden sollen. Verdrehte Executors sind von der aktuellen Planungsrunde ausgeschlossen. | 5 | 10 |
spark.scheduler.shuffleSkew.maxExecutorsRatio |
Maximales Verhältnis der gesamten Executors, die als Verzerrung behandelt werden sollen. Verdrehte Executors von der Planung ausgeschlossen. | 0,05 | 0.1 |
spark.scheduler.shuffleSkew.ratio |
Ein Vielfaches der durchschnittlich abgeschlossenen Shuffle-Map-Aufgaben in einem Executor als Verzerrung behandelt. | 1,5 | 2.0 |
Weitere Eigenschaften
Attribut | Beschreibung |
---|---|
dataproc.diagnostics.enabled |
Aktivieren Sie dieses Attribut, um eine Diagnose für einen Batch-Arbeitslastfehler auszuführen oder Kündigung. Wenn die Diagnose aktiviert ist, wird die Batcharbeitslast weiterhin verwendet Rechenressourcen nach Abschluss der Arbeitslast, bis die Diagnose abgeschlossen ist. Ein URI, der auf den Speicherort des Diagnose-Tarballs verweist, ist im Batch.RuntimeInfo.diagnosticOutputUri API-Feld. |
dataproc.gcsConnector.version |
Mit dieser Property können Sie ein Upgrade auf ein Version des Cloud Storage-Connectors die sich von der Version unterscheidet, die mit der Laufzeitversion. |
dataproc.sparkBqConnector.version |
Mit dieser Property können Sie ein Upgrade auf ein Version des Spark BigQuery-Connectors die sich von der Version unterscheidet, die mit der Laufzeitversion (siehe Verwenden Sie den BigQuery-Connector mit Dataproc Serverless for Spark. |
dataproc.profiling.enabled |
Legen Sie dieses Attribut auf true fest, um die Profilerstellung für die
Serverlose Dataproc-Arbeitslast. |
dataproc.profiling.name |
Mit dieser Eigenschaft können Sie den Namen festlegen, der zur Erstellung eines Profils auf der Profiler-Dienst abrufen. |