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 verwendetUTF-8als 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.tieraufstandardfest. 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
375GiB sein. - Weniger Attribute: Das Attribut
dataproc.tierbestimmt die Rechen- und Laufwerksressourcen des Treibers und der Executors, sodass Sie sie nicht separat konfigurieren müssen. Die Attributespark.dataproc.driver.compute.tier,spark.dataproc.executor.compute.tier,spark.dataproc.driver.disk.tierundspark.dataproc.executor.disk.tierwerden entfernt.
- 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
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=defaultfest. In interaktiven Sitzungen wird die Lightning Engine standardmäßig nicht verwendet. Wenn Sie die Funktion für eine interaktive Sitzung aktivieren möchten, legen Siespark.dataproc.engine=lightningEnginefest. Wenn Sie auch die Ausführung nativer Abfragen verwenden möchten, legen Siespark.dataproc.lightningEngine.runtime=nativefest.Standardmäßige
highmem-Speicherform: Die4.0-Laufzeit führt Speicherformen ein, die bestimmen, wie viel Speicher der Treiber und die Executors erhalten. Treiber und Executors verwenden standardmäßig die Speicherformhighmem, die7.75GiB Arbeitsspeicher pro vCPU bietet und ihnen mehr Arbeitsspeicher als die Standardeinstellungen der3.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.shapeoderspark.dataproc.executor.memory.shapeaufhighmemoderstandardfest. Die Speicherformstandardbietet3.75GiB 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.memoryOverheadoderspark.executor.memoryOverheadfestlegen.
- Neue Eigenschaften für die Speicherform: Wenn Sie die Speicherform des Treibers oder der Executors auswählen möchten, legen Sie die Property
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
bigqueryist 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 von0.1. Wenn Sie ändern möchten, wie der Arbeitsspeicher einer Speicherform zwischen dem Heap und dem Speicher-Overhead aufgeteilt wird, legen Siespark.driver.memoryOverheadFactoroderspark.executor.memoryOverheadFactorfest.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.shapeoderspark.dataproc.executor.memory.shape. - Arbeitsspeicher:
spark.driver.memoryoderspark.executor.memory. - Speicher-Overhead:
spark.driver.memoryOverheadoderspark.executor.memoryOverhead. - Ein GPU-Beschleuniger. Treiber und Executors, die GPUs verwenden, erhalten eine feste Menge an Arbeitsspeicher.
- Eine Speicherform:
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
highmemoderstandardfest.
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) ist450goder kleiner. Der Standardwert ist400g. - In der Arbeitslast wird weder
spark.driver.memory,spark.driver.memoryOverhead,spark.driver.memoryOverheadFactornoch 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.tierundspark.dataproc.executor.disk.tierwerden nicht unterstützt. Verwenden Sie stattdessen das Attributdataproc.tier.Off-Heap-Speicherattribute: Die Attribute
spark.memory.offHeap.enabledundspark.memory.offHeap.sizewerden 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-connectorfest, 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.
| 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 |