Dataproc Serverless nutzt Spark-Attribute, um Die Rechen-, Arbeitsspeicher- und Laufwerkressourcen, die der Batcharbeitslast zugewiesen werden sollen. Diese Property-Einstellungen können sich auf die Inanspruchnahme und die Kosten des Arbeitslastkontingents auswirken. Weitere Informationen finden Sie unter Dataproc Serverless-Kontingente und Dataproc Serverless-Preise.
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-Einreichung über 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-Properties als Teil einer batches.create-Anfrage fest.
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 im Spark-Anwendungscode eine YARN- oder Zufallsmix-Property festgelegt ist, 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 die EnvironmentVariableName hinzu. Ich mehrere Umgebungsvariablen angeben. |
Eigenschaften der Ressourcenzuweisung
Dataproc Serverless für Spark unterstützt die folgenden Spark-Properties 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, wird durch die Summe von Gesamttreiberarbeitsspeicher pro Treiberkern, einschließlich Treiberarbeitsspeicher-Overhead,
muss zwischen |
10 % des Treiberspeichers, mit Ausnahme von PySpark-Batch-Arbeitslasten, für die standardmäßig 40 % des Treiberspeichers verwendet werden | 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, aber wird zu einem höheren Preis abgerechnet. | Standard | Standard, Premium |
spark.dataproc.driver.disk.size |
Die dem Treiber zugewiesene Größe des Speicherplatzes, angegeben mit einem Suffix für die Größe („k“, „m“, „g“ oder „t“).
Muss mindestens 250GiB sein.
Wenn für den Treiber die Premium-Speicherebene ausgewählt ist, sind die zulässigen Größen 375 g, 750 g, 1.500 g, 3.000 g, 6.000 g oder 9.000 g. Wenn die Premium-Laufwerksstufe und 16 Treiberkerne ausgewählt sind, beträgt die Mindestlaufwerksgröße 750 GB. |
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 Premium-Laufwerkebene bietet eine bessere Leistung in Bezug auf IOPS und Durchsatz, wird aber 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 Premium-Laufwerksebene ausgewählt ist, weist der Treiber dem Systemspeicher zusätzliche 50 GiB Speicherplatz zu, der nicht von Nutzeranwendungen 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 Größe des Arbeitsspeichers, der jedem Spark-Executor-Prozess zugewiesen werden soll. Sie wird im JVM-Arbeitsspeicher-Stringformat mit einem Suffix für die Größe („m“, „g“ oder „t“) angegeben. Gesamter Executor-Arbeitsspeicher pro Executor-Kern, einschließlich Executor-Arbeitsspeicher
muss zwischen |
512m , 2g |
|
spark.executor.memoryOverhead |
Die Menge des zusätzlichen JVM-Speichers, der dem Spark-Executor-Prozess zugewiesen werden soll. Sie wird im JVM-Speicher-Stringformat mit einem Suffix für die Größe („m“, „g“ oder „t“) angegeben. Dies ist nicht Heap-Speicher, der für JVM-Overhead, interne Strings und andere nativen Overheads verwendet wird. Dazu gehören der PySpark-Executor-Speicher und der Speicher, der von anderen Prozessen verwendet wird, die nicht zum Executor gehören und 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, aber wird zu einem höheren Preis abgerechnet. | Standard | Standard, Premium |
spark.dataproc.executor.disk.size |
Die Größe des jedem Executor zugewiesenen Speicherplatzes, angegeben mit einem Suffix für die Größe („k“, „m“, „g“ oder „t“).
Der Speicherplatz des Executors kann für das Zufallsmixen von Daten und zum Staging von Abhängigkeiten verwendet werden. 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. Wenn die Premium-Laufwerkebene und 16 Executor-Kerne ausgewählt sind, beträgt die Mindestlaufwerkgröße 750 GB. |
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 Premium-Laufwerkebene bietet eine bessere Leistung in Bezug auf IOPS und Durchsatz, wird aber zu einem höheren Preis abgerechnet. Wenn die Premium-Speicherebene auf dem Executor ausgewählt ist, muss auch die Premium-Rechenebene mit spark.dataproc.executor.compute.tier=premium ausgewählt und die Größe des Speicherplatzes mit spark.dataproc.executor.disk.size angegeben werden.
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 |
Wenn diese Option festgelegt ist, werden alle benutzerdefinierten Protokolleinstellungen überschrieben. Beim Starten von Spark wird dann SparkContext.setLogLevel() aufgerufen. Gültige Lobenen sind: ALL , DEBUG , ERROR , FATAL , INFO , OFF , TRACE und WARN . |
INFO , DEBUG |
|
spark.executor.syncLogLevel.enabled |
Wenn dieser Wert auf true festgelegt ist, wird die über die Methode SparkContext.setLogLevel() angewendete Protokollebene an alle Ausführer 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 Lobenebenen 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 bei der Planung verzerrte Executors für Shuffle-Karten aus. Dies kann 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. Verzerrte Ausführende werden von der aktuellen Planungsrunde ausgeschlossen. | 5 | 10 |
spark.scheduler.shuffleSkew.maxExecutorsRatio |
Maximales Verhältnis der gesamten Executors, die als Verzerrung behandelt werden sollen. Verzerrte Ausführende werden 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 API-Feld Batch.RuntimeInfo.diagnosticOutputUri aufgeführt. |
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 das Profiling für die serverlose Dataproc-Arbeitslast zu aktivieren. |
dataproc.profiling.name |
Mit dieser Property legen Sie den Namen fest, der zum Erstellen eines Profils im Profiler-Dienst verwendet wurde. |