Spark-Attribute

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).

Attribute von Spark-Batcharbeitslasten 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

  1. Rufen Sie in der Google Cloud Console die Seite Dataproc-Batch erstellen auf.

  2. Klicken Sie im Bereich Eigenschaften auf Property hinzufügen und geben Sie Key (Name) und Value 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 1024m und 7424m für den Standard-Computing-Stufe (24576m für die Premium-Computing-Stufe). Für Wenn zum Beispiel spark.driver.cores = 4, dann 4096m <= spark.driver.memory + spark.driver.memoryOverhead <= 29696m.

512m, 2g
spark.driver.memoryOverhead

Die Menge an zusätzlichem JVM-Arbeitsspeicher, der dem Spark-Treiber zugewiesen werden soll Prozess, angegeben im JVM-Speicherstringformat mit einem Suffix für die Größeneinheit („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 spark.driver.memoryOverhead plus spark.driver.memory.

Gesamttreiberarbeitsspeicher pro Treiberkern, einschließlich Treiberarbeitsspeicher-Overhead, muss zwischen 1024m und 7424m für die Standard-Computing-Stufe (24576m für die Premium-Computing-Stufe). Beispiel: wenn spark.driver.cores = 4, dann 4096m <= spark.driver.memory + spark.driver.memoryOverhead <= 29696m.

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 1024m und 7424m für die Standard-Computing-Stufe (24576m für die Premium-Computing-Stufe). Beispiel: wenn spark.executor.cores = 4, dann 4096m <= spark.executor.memory + spark.executor.memoryOverhead <= 29696m.

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 spark.executor.memoryOverhead plus spark.executor.memory.

Gesamter Executor-Arbeitsspeicher pro Executor-Kern, einschließlich Executor-Arbeitsspeicher muss zwischen 1024m und 7424m für die Standard-Computing-Stufe (24576m für die Premium-Computing-Stufe). Beispiel: wenn spark.executor.cores = 4, dann 4096m <= spark.executor.memory + spark.executor.memoryOverhead <= 29696m.

10% des Executor-Arbeitsspeichers, mit Ausnahme von PySpark-Batcharbeitslasten, der standardmäßig 40% des Executor-Arbeitsspeichers 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 Laufwerksstufe Premium ausgewählt ist, wird jeder Executor zugewiesen zusätzlich 50 GiB Festplattenspeicher für Systemspeicher, Nutzeranwendungen verwenden können.

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 sein mindestens 2 und höchstens 2000.

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

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 Verwenden Sie diese Property für ein Upgrade auf ein Version des Cloud Storage-Connectors die sich von der Version unterscheidet, die mit der Laufzeitversion.
dataproc.sparkBqConnector.version Verwenden Sie diese Property für 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.