Dataproc Serverless verwendet Spark-Attribute, um die Rechen-, Arbeitsspeicher- und Laufwerkressourcen zu bestimmen, die der Batcharbeitslast zugewiesen werden sollen. Diese Attributeinstellungen können sich auf den Verbrauch und die Kosten von Arbeitslastkontingenten auswirken. Weitere Informationen finden Sie unter Dataproc Serverless-Kontingente und Dataproc Serverless-Preise.
Attribute von Spark-Batcharbeitslasten festlegen
Sie können Spark-Attribute festlegen, wenn Sie über die Google Cloud Console, die gcloud CLI oder die Dataproc API eine Batcharbeitslast von Dataproc Serverless Spark senden.
Console
Rufen Sie in der Google Cloud Console die Seite Dataproc-Batch erstellen auf.
Klicken Sie im Bereich Attribute auf Add Property (Attribut hinzufügen) und geben Sie dann
Key
(Name) undValue
eines unterstützten Spark-Attributs ein.
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
Legen Sie RuntimeConfig.properties mit unterstützten Spark-Attributen als Teil einer batches.create-Anfrage fest.
Unterstützte Spark-Attribute
Dataproc Serverless for Spark unterstützt die meisten Spark-Attribute, aber keine YARN- oder Shuffle-bezogenen Spark-Attribute wie spark.master=yarn
und spark.shuffle.service.enabled
. Wenn der Spark-Anwendungscode ein YARN- oder Shuffle-Attribut 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. Sie können mehrere Umgebungsvariablen angeben. |
Attribute für Ressourcenzuweisung
Dataproc Serverless for Spark unterstützt die folgenden Spark-Attribute zum Konfigurieren 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 |
Die Größe des Arbeitsspeichers, der dem Spark-Treiberprozess zugewiesen werden soll, angegeben im JVM-Speicherstringformat mit einem Suffix der Größeneinheit („m“, „g“ oder „t“). Gesamttreiberarbeitsspeicher pro Treiberkern, einschließlich Treiberarbeitsspeicher-Overhead, der zwischen |
512m , 2g |
|
spark.driver.memoryOverhead |
Die Menge an zusätzlichem JVM-Arbeitsspeicher, der dem Spark-Treiberprozess zugewiesen werden soll, angegeben im JVM-Speicherstringformat mit einem Suffix der Größeneinheit ("m", "g" oder "t"). Dies ist Nicht-Heap-Arbeitsspeicher, der mit JVM-Overheads, internen Strings und anderen nativen Overheads verbunden ist, einschließlich des Arbeitsspeichers, der von anderen Treiberprozessen wie PySpark-Treiberprozessen und von anderen im Container ausgeführten Nicht-Treiberprozessen verwendet wird.
Die maximale Arbeitsspeichergröße des Containers, in dem der Treiber ausgeführt wird, ergibt sich aus der Summe von Der gesamte Treiberarbeitsspeicher pro Treiberkern, einschließlich des Treiberspeicher-Overheads, muss für die Standard-Computing-Stufe zwischen |
10% des Treiberarbeitsspeichers, mit Ausnahme von PySpark-Batcharbeitslasten, die standardmäßig 40% des Treiberarbeitsspeichers ausmachen | 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 jedoch zu einem höheren Preis abgerechnet. | standard | Standard, Premium |
spark.dataproc.driver.disk.size |
Der dem Treiber zugewiesene Speicherplatz, angegeben mit einem Suffix der Größeneinheit („k“, „m“, „g“ oder „t“).
Muss mindestens 250GiB sein.
Wenn die Premium-Laufwerksstufe für den Treiber ausgewählt wurde, sind die gültigen Größen 375 g, 750 g, 1.500 g, 3.000 g, 6.000 g oder 9000 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, wird jedoch zu einem höheren Preis abgerechnet. Wenn die Premium-Laufwerksstufe für den Treiber ausgewählt ist, muss auch die Premium-Computing-Stufe mit spark.dataproc.driver.compute.tier=premium ausgewählt werden. Die Größe des Speicherplatzes muss mit spark.dataproc.executor.disk.size angegeben werden.
Wenn die Premium-Laufwerksstufe ausgewählt ist, weist der Treiber zusätzlichen Speicherplatz von 50 GiB für den Systemspeicher zu, der von Nutzeranwendungen nicht verwendet werden kann. | 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 Speichermenge, die jedem Spark-Executor-Prozess zugewiesen werden soll, angegeben im JVM-Speicherstringformat mit einem Suffix der Größeneinheit („m“, „g“ oder „t“). Der gesamte Executor-Arbeitsspeicher pro Executor-Kern, einschließlich Executor-Arbeitsspeicher-Overhead, muss für die Standard-Computing-Stufe zwischen |
512m , 2g |
|
spark.executor.memoryOverhead |
Die Menge an zusätzlichem JVM-Arbeitsspeicher, der dem Spark-Executor-Prozess zugewiesen werden soll, angegeben im JVM-Speicherstringformat mit einem Suffix der Größeneinheit ("m", "g" oder "t"). Dies ist Nicht-Heap-Speicher, der für JVM-Overheads, interne Strings und andere native Overheads verwendet wird. Er umfasst PySpark-Executor-Arbeitsspeicher und Arbeitsspeicher, der von anderen Nicht-Executor-Prozessen im Container verwendet wird.
Die maximale Arbeitsspeichergröße des Containers, in dem der Executor ausgeführt wird, ergibt sich aus der Summe von Der gesamte Executor-Arbeitsspeicher pro Executor-Kern, einschließlich Executor-Arbeitsspeicher-Overhead, muss für die Standard-Computing-Stufe zwischen |
10% des Executor-Arbeitsspeichers, mit Ausnahme von PySpark-Batcharbeitslasten, die standardmäßig 40% des Executor-Arbeitsspeichers sind | 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 jedoch zu einem höheren Preis abgerechnet. | standard | Standard, Premium |
spark.dataproc.executor.disk.size |
Die Menge an Speicherplatz, der jedem Executor zugewiesen ist, angegeben durch ein Suffix der Größeneinheit ("k", "m", "g" oder "t").
Speicherplatz des Executors kann für Shuffle-Daten und zum Staging von Abhängigkeiten verwendet werden. Muss mindestens 250GiB sein.
Wenn für den Executor die Premium-Laufwerksstufe 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, wird jedoch zu einem höheren Preis abgerechnet. Wenn für den Executor die Premium-Laufwerksstufe ausgewählt wird, muss auch die Premium-Computing-Stufe mit spark.dataproc.executor.compute.tier=premium ausgewählt werden. Die Größe des Speicherplatzes muss mit spark.dataproc.executor.disk.size angegeben werden.
Wenn die Premium-Laufwerksstufe ausgewählt ist, wird jedem Executor ein zusätzlicher Speicherplatz von 50 GiB für Systemspeicher zugewiesen, der von Nutzeranwendungen nicht verwendet werden kann. | standard | Standard, Premium |
spark.executor.instances |
Die anfängliche Anzahl der Executors, die zugewiesen werden sollen. Nach dem Start einer Batcharbeitslast kann das Autoscaling die Anzahl der aktiven Executors ändern. Muss mindestens 2 und darf höchstens 2000 sein. |
Autoscaling-Attribute
Unter Attribute für die dynamische Zuordnung von Spark finden Sie eine Liste der Spark-Attribute, die Sie zum Konfigurieren des serverlosen Autoscalings von Dataproc verwenden können.
Logging-Attribute
Attribut | Beschreibung | Standard | Beispiele |
---|---|---|---|
spark.log.level |
Überschreibt alle benutzerdefinierten Logeinstellungen mit der 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 true festgelegt ist, wird die über die Methode SparkContext.setLogLevel() angewendete Logebene an alle Executors weitergegeben. |
false |
true , false |
spark.log.level.PackageName |
Überschreibt alle benutzerdefinierten Logeinstellungen mit der Auswirkung eines Aufrufs von SparkContext.setLogLevel(PackageName, level) beim Spark-Start. Gültige Logebenen sind: 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 bei einem Batchfehler oder einem Abbruch einer Batcharbeitslast eine Diagnose auszuführen. Wenn die Diagnose aktiviert ist, verwendet die Batcharbeitslast nach Abschluss der Arbeitslast weiterhin Rechenressourcen, bis die Diagnose abgeschlossen ist. Ein URI, der auf den Speicherort des Diagnose-Tarballs verweist, ist im API-Feld Batch.RuntimeInfo.diagnosticOutputUri – aufgeführt. |
dataproc.gcsConnector.version |
Verwenden Sie dieses Attribut, um ein Upgrade auf eine Version des Cloud Storage-Connectors durchzuführen, die sich von der Version unterscheidet, die mit der Laufzeitversion Ihrer Batcharbeitslast installiert ist. |
dataproc.sparkBqConnector.version |
Verwenden Sie dieses Attribut, um ein Upgrade auf eine Version des Spark BigQuery-Connectors durchzuführen, die sich von der Version unterscheidet, die mit der Laufzeitversion Ihrer Batcharbeitslast installiert wurde (siehe BigQuery-Connector mit Dataproc Serverless für Spark verwenden). |
dataproc.profiling.enabled |
Legen Sie dieses Attribut auf true fest, um die Profilerstellung für die serverlose Dataproc-Arbeitslast zu aktivieren. |
dataproc.profiling.name |
Verwenden Sie dieses Attribut, um den Namen festzulegen, der zum Erstellen eines Profils im Profiler-Dienst verwendet wird. |