Managed Service for Apache Spark-Laufzeit 4.0

Komponenten der Spark-Laufzeitversion 4.0

Komponente 4.0.0
Apache Spark 4.2.0
Cloud Storage-Connector 4.0.7
BigQuery-Connector 0.46.0
Java 25
Python 3.13
Scala 2.13.17

Hinweise:

  • Die 4.0-Laufzeit verwendet UTF-8 als Standardzeichencodierung.

  • Die 4.0-Laufzeit verwendet Pixi anstelle von Conda, um die Python-Umgebung zu verwalten. Informationen zu den in der Umgebung enthaltenen Paketen finden Sie unter Python-Bibliotheken.

Funktionen und Verbesserungen von Laufzeit 4.0

Im Vergleich zur 3.0-Laufzeit enthält die 4.0-Laufzeit die folgenden Änderungen an Standardeinstellungen und Features:

  • Standardmäßig Premium-Stufe: Batch-Arbeitslasten werden in der Premium-Stufe ausgeführt, es sei denn, Sie legen das Attribut dataproc.tier auf standard fest. Interaktive Sitzungen werden immer in der Premium-Stufe ausgeführt. Arbeitslasten der Premium-Stufe werden zum Premium-Tarif für Data Compute Units (DCUs) abgerechnet.

    Die 4.0-Laufzeit vereinfacht auch die Konfiguration von Arbeitslasten:

    • Bessere Standardeinstellungen: In der Premium-Stufe verwenden der Treiber und die Executors standardmäßig Premium-Computing- und -Laufwerksressourcen. Sie müssen also keine Attribute festlegen, um sie zu verwenden. Informationen zu den Standardlaufwerksgrößen finden Sie unter Standardlaufwerksgröße. In der Premium-Stufe müssen die Laufwerkgrößen keine Vielfachen von 375 GiB sein.
    • Weniger Attribute: Das Attribut dataproc.tier bestimmt die Rechen- und Laufwerksressourcen des Treibers und der Executors, sodass Sie sie nicht separat konfigurieren müssen. Die Attribute spark.dataproc.driver.compute.tier, spark.dataproc.executor.compute.tier, spark.dataproc.driver.disk.tier und spark.dataproc.executor.disk.tier werden entfernt.
  • Lightning Engine standardmäßig: Batch-Arbeitslasten der Premium-Stufe verwenden standardmäßig die Lightning Engine. Wenn Sie die Funktion deaktivieren möchten, legen Sie spark.dataproc.engine=default fest. In interaktiven Sitzungen wird die Lightning Engine standardmäßig nicht verwendet. Wenn Sie die Funktion für eine interaktive Sitzung aktivieren möchten, legen Sie spark.dataproc.engine=lightningEngine fest. Wenn Sie auch die Ausführung nativer Abfragen verwenden möchten, legen Sie spark.dataproc.lightningEngine.runtime=native fest.

  • Standardmäßige highmem-Speicherform: Die 4.0-Laufzeit führt Speicherformen ein, die bestimmen, wie viel Speicher der Treiber und die Executors erhalten. Treiber und Executors verwenden standardmäßig die Speicherform highmem, die 7.75 GiB Arbeitsspeicher pro vCPU bietet und ihnen mehr Arbeitsspeicher als die Standardeinstellungen der 3.0-Laufzeit zur Verfügung stellt. Speicherformen erleichtern auch die Konfiguration des Speichers:

    • Neue Eigenschaften für die Speicherform: Wenn Sie die Speicherform des Treibers oder der Executors auswählen möchten, legen Sie die Property spark.dataproc.driver.memory.shape oder spark.dataproc.executor.memory.shape auf highmem oder standard fest. Die Speicherform standard bietet 3.75 GiB Arbeitsspeicher pro vCPU.
    • Automatische Speichergrößenanpassung: Managed Service for Apache Spark passt die Größe des Spark-Speichers und des Speicher-Overheads des Treibers und der Executors anhand ihrer Speicherform an. Sie müssen also nicht spark.driver.memory, spark.executor.memory, spark.driver.memoryOverhead oder spark.executor.memoryOverhead festlegen.
  • Schnellerer Start: In der Premium-Stufe können Arbeitslasten, die die Standardtreiberkonfiguration verwenden, den Treiber auf einer VM mit schnellem Start ausführen, was die Startzeit der Arbeitslast verkürzt.

  • Lakehouse-Laufzeitkatalog als Standardkatalog: Batcharbeitslasten und interaktive Sitzungen verwenden den Lakehouse-Laufzeitkatalog als Standard-Spark-Katalog. So können Sie Apache Iceberg-Tabellen erstellen und abfragen, ohne einen Katalog konfigurieren zu müssen. Der vorkonfigurierte Spark-Katalog bigquery ist weiterhin verfügbar. Wenn Sie einen anderen Katalog verwenden möchten, lesen Sie den Hilfeartikel Starterkatalog deaktivieren.

  • DCU-Kontingent: Arbeitslasten verbrauchen das Data Compute Units-Kontingent (DataComputeUnitsPerProjectPerRegion) von Managed Service for Apache Spark anstelle der Compute Engine-CPU- und Laufwerkskontingente Ihres Projekts. Arbeitslasten, die GPUs verwenden, verbrauchen weiterhin Compute Engine-Kontingente. Weitere Informationen finden Sie unter Serverlose Kontingente für Managed Service for Apache Spark.

Die 4.0-Laufzeit umfasst auch die Funktionen der 3.0-Laufzeit, z. B. regionale und multizonale Arbeitslasten, standardmäßige Endnutzer-Anmeldedaten und schnelle Ressourcenbereinigung.

Speicherformen

In der 4.0-Laufzeit bestimmt die Speicherform des Treibers und der Executors, wie viel Arbeitsspeicher ihnen zugewiesen wurde. Eine Speicherform bietet eine feste Menge an Arbeitsspeicher für jede vCPU. Managed Service for Apache Spark teilt diesen Arbeitsspeicher zwischen dem Spark-Heap (spark.driver.memory oder spark.executor.memory) und dem Arbeitsspeicher-Overhead (spark.driver.memoryOverhead oder spark.executor.memoryOverhead) auf.

In der Laufzeit 4.0 werden die folgenden Attribute eingeführt, um die Speicherform des Treibers und der Executors auszuwählen:

Attribut Beschreibung Standard
spark.dataproc.driver.memory.shape Die Speicherform des Treibers, entweder highmem oder standard. highmem
spark.dataproc.executor.memory.shape Die Speicherform der Executors, entweder highmem oder standard. highmem

In der folgenden Tabelle sind der Arbeitsspeicher, den die einzelnen Arbeitsspeicherformen bereitstellen, und die Standard-Spark-Arbeitsspeichereinstellungen eines Treibers oder Executors mit 4 vCPUs aufgeführt. Dies ist der Standardwert von spark.driver.cores und spark.executor.cores:

Formgedächtnis Arbeitsspeicher pro vCPU PySpark-Batcharbeitslasten: Arbeitsspeicher und Arbeitsspeicher-Overhead Andere Batcharbeitslasten und interaktive Sitzungen: Arbeitsspeicher und Arbeitsspeicher-Overhead
highmem 7,75 GiB 21154m und 8462m 26924m und 2692m
standard 3,75 GiB 9681m und 3872m 12321m und 1232m

Hinweise:

  • Der Arbeitsspeicher einer Speicherform skaliert mit der Anzahl der vCPUs. Ein highmem-Executor mit 8 vCPUs erhält beispielsweise 62 GiB Arbeitsspeicher.

  • Ein Teil des Arbeitsspeichers einer Speicherform ist für das System reserviert und steht Spark nicht zur Verfügung. Arbeitslasten, die benutzerdefinierte Container-Images verwenden, reservieren zusätzlichen Arbeitsspeicher, sodass ihre standardmäßigen Spark-Arbeitsspeichereinstellungen etwas niedriger sind.

  • PySpark-Batcharbeitslasten verwenden einen Speicher-Overhead-Faktor von 0.4. Andere Batch-Arbeitslasten und interaktive Sitzungen verwenden einen Arbeitsspeicher-Overhead-Faktor von 0.1. Wenn Sie ändern möchten, wie der Arbeitsspeicher einer Speicherform zwischen dem Heap und dem Speicher-Overhead aufgeteilt wird, legen Sie spark.driver.memoryOverheadFactor oder spark.executor.memoryOverheadFactor fest.

  • Die Speicherform bestimmt den Arbeitsspeicher, der für den Treiber und die Executors bereitgestellt wird, was sich auf die DCU-Nutzung auswirkt. Weitere Informationen finden Sie unter Preise für Managed Service for Apache Spark.

Wie Memory-Formen angewendet werden

Managed Service for Apache Spark wendet Arbeitsspeicherformen wie folgt auf den Treiber und die Executors an:

  • Ein Treiber oder Executor verwendet die Speicherform highmem, sofern Sie nicht eine der folgenden Optionen festlegen:

    • Eine Speicherform: spark.dataproc.driver.memory.shape oder spark.dataproc.executor.memory.shape.
    • Arbeitsspeicher: spark.driver.memory oder spark.executor.memory.
    • Speicher-Overhead: spark.driver.memoryOverhead oder spark.executor.memoryOverhead.
    • Ein GPU-Beschleuniger. Treiber und Executors, die GPUs verwenden, erhalten eine feste Menge an Arbeitsspeicher.
  • Wenn Sie den Arbeitsspeicher oder den Arbeitsspeicher-Overhead eines Treibers oder Executors festlegen, aber nicht dessen Arbeitsspeicherform, verwendet der Treiber oder Executor keine Arbeitsspeicherform. Stattdessen wird der Treiber oder Executor von Managed Service for Apache Spark anhand des von Ihnen angegebenen Arbeitsspeichers dimensioniert, wie in früheren Laufzeiten.

  • Das Festlegen des Speicher-Overhead-Faktors eines Treibers oder Executors ändert nicht seine Speicherform.

  • Managed Service for Apache Spark lehnt eine Batcharbeitslast oder interaktive Sitzung in den folgenden Fällen ab:

    • Damit wird die Speicherform eines Treibers oder Executors sowie der Arbeitsspeicher oder der Arbeitsspeicher-Overhead desselben Treibers oder Executors festgelegt. Wenn Sie ändern möchten, wie der Arbeitsspeicher einer Speicherform aufgeteilt wird, legen Sie stattdessen den Arbeitsspeicher-Overhead-Faktor fest.
    • Es legt eine Speicherform auf einen anderen Wert als highmem oder standard fest.

Treiber für den Schnellstart

In der Premium-Stufe kann Managed Service for Apache Spark den Treiber auf einer VM mit schnellem Start ausführen, um die Startzeit der Arbeitslast zu verkürzen. Der Treiber kann auf einer VM mit Schnellstart ausgeführt werden, wenn alle folgenden Bedingungen erfüllt sind:

  • Die Arbeitslast wird in der Premium-Stufe ausgeführt, die in der 4.0-Laufzeit die Standardeinstellung ist.
  • Der Fahrer verwendet eine Speicherform.
  • Der Treiber hat 4 vCPUs (spark.driver.cores=4), was dem Standardwert entspricht.
  • Die Laufwerksgröße für Treiber (spark.dataproc.driver.disk.size) ist 450g oder kleiner. Der Standardwert ist 400g.
  • In der Arbeitslast wird weder spark.driver.memory, spark.driver.memoryOverhead, spark.driver.memoryOverheadFactor noch ein GPU-Beschleuniger für den Treiber festgelegt.

Ein Treiber, der auf einer VM mit Schnellstart ausgeführt wird, erhält denselben Arbeitsspeicher wie andere Treiber, die dieselbe Arbeitsspeicherform verwenden.

Standardlaufwerksgröße

In der Laufzeit 4.0 bestimmt die Stufe einer Arbeitslast die Standardlaufwerksgröße des Treibers und der Executors:

Stufe Standardlaufwerksgröße jedes Treibers und Executors
Premium (Standardeinstellung) 100 GiB pro vCPU und mindestens 375 GiB. Beispiel: 400 GiB für 4 vCPUs.
Standard `75` GiB pro vCPU und bis zu 1.000 GiB. Beispiel: `300` GiB für 4 vCPUs.

Wenn Sie die Laufwerksgröße ändern möchten, legen Sie die Ressourcenzuweisungs-Property spark.dataproc.driver.disk.size oder spark.dataproc.executor.disk.size fest. In der Premium-Stufe müssen die Laufwerkgrößen keine Vielfachen von 375 GiB sein.

Nicht unterstützte Funktionen und Verhaltensänderungen

Die folgenden Funktionen werden in der 4.0-Laufzeit nicht unterstützt oder verhalten sich anders:

  • Compute- und Laufwerkstufenattribute: Die Attribute spark.dataproc.driver.compute.tier, spark.dataproc.executor.compute.tier, spark.dataproc.driver.disk.tier und spark.dataproc.executor.disk.tier werden nicht unterstützt. Verwenden Sie stattdessen das Attribut dataproc.tier.

  • Off-Heap-Speicherattribute: Die Attribute spark.memory.offHeap.enabled und spark.memory.offHeap.size werden nicht unterstützt.

  • Subnetzwerke: Sie müssen ein Subnetzwerk angeben, wenn Sie eine Batcharbeitslast senden oder eine interaktive Sitzung erstellen. Dual-Stack-Subnetze (IPv4 und IPv6) und reine IPv6-Subnetze werden nicht unterstützt. Weitere Informationen finden Sie unter Netzwerkkonfiguration.

  • Benutzerdefinierter Spark-BigQuery-Connector: Wenn Sie einer Batcharbeitslast eine JAR-Datei für den Spark-BigQuery-Connector hinzufügen, legen Sie auch das Attribut dataproc.artifacts.remove=spark-bigquery-connector fest, um den vorinstallierten Connector zu entfernen. Andernfalls schlägt die Batcharbeitslast fehl.

  • Staging-Buckets: Die 4.0-Laufzeit verwendet keine Staging-Buckets von Cloud Storage.

  • Persistent History Server (PHS): Der PHS wird nicht unterstützt. Verwenden Sie stattdessen die Spark-UI.

  • SparkR: SparkR-Batches werden nicht unterstützt. Verwenden Sie stattdessen sparklyr.

  • Jupyter-Sitzungen: Jupyter-Sitzungen werden nicht unterstützt. Verwenden Sie stattdessen Spark Connect-Sitzungen, den Branchenstandard für die interaktive Spark-Entwicklung.

Python-Bibliotheken

In der folgenden Tabelle sind die Python-Pakete aufgeführt, die in der 4.0-Laufzeit enthalten sind. Wenn in der Tabelle keine Version für ein Paket aufgeführt ist, enthält die Laufzeit die neueste Version des Pakets, die mit den anderen Paketen kompatibel ist, wenn die Laufzeit erstellt wird. Diese Versionen können sich in Subminor-Laufzeitreleases ändern.

serverless-spark-4.0-debian-13 python libraries
Paketname Version
accelerate
bigframes
ca-certificates
certifi
cookiecutter
cuda 12.9
cudnn
cython
dask
Datasets
db-dtypes
deepspeed
delta-spark 4.4.0
evaluate
fastavro
fastparquet
gcsfs
google-auth-oauthlib
google-cloud-aiplatform
google-cloud-alloydb-connector[pg8000]
google-cloud-bigquery
google-cloud-bigtable
google-cloud-container
google-cloud-datacatalog
google-cloud-dataproc
google-cloud-datastore
google-cloud-dlp
google-cloud-language
google-cloud-logging
google-cloud-monitoring
google-cloud-pubsub
google-cloud-redis
google-cloud-secret-manager
google-cloud-spanner
google-cloud-spark-connect[interactive]
google-cloud-speech
google-cloud-storage
google-cloud-storage-control
google-cloud-texttospeech
google-cloud-translate
google-cloud-vision
holoviews
ipyparallel
keyrings.google-artifactregistry-auth
langchain
lightgbm
mkl
mlflow
nccl
nltk
numba
numba-cuda
numpy
onnx
opencv-python
optuna
pandas
Papierfabrik
polars
psycopg2-binary
pyarrow
pydot
pyiceberg
pymongo
pynvml
Python 3.13
python-dateutil
pytorch-gpu
Anfragen
rtree
scikit-image
scikit-learn
scipy
seaborn
sentence-transformers
sentencepiece
shap
spacy
sqlalchemy
statsforecast
sympy
Tabellen
torcheval
torchvision
transformers
virtualenv
wordcloud
xgboost 3.4