Runtime di Managed Service for Apache Spark 4.0

Componenti della versione di runtime Spark 4.0

Componente 4.0.0
Apache Spark 4.2.0
Connettore Cloud Storage 4.0.7
Connettore BigQuery 0.46.0
Java 25
Python 3.13
Scala 2.13.17

Note:

  • Il runtime 4.0 utilizza UTF-8 come codifica dei caratteri predefinita.

  • Il runtime 4.0 utilizza Pixi anziché Conda per gestire il proprio ambiente Python. Per i pacchetti inclusi nell'ambiente, consulta Librerie Python.

Funzionalità e miglioramenti di Runtime 4.0

Rispetto al runtime 3.0, il runtime 4.0 include le seguenti modifiche ai valori predefiniti e alle funzionalità:

  • Livello Premium per impostazione predefinita: i workload Batch vengono eseguiti nel livello Premium, a meno che non imposti la proprietà dataproc.tier su standard. Le sessioni interattive vengono sempre eseguite nel livello Premium. I workload di livello Premium vengono addebitati alla tariffa premium per le unità di calcolo dei dati (DCU).

    Il runtime 4.0 semplifica anche la configurazione dei workload:

    • Impostazioni predefinite migliori: nel livello Premium, il driver e gli esecutori utilizzano per impostazione predefinita risorse di calcolo e disco premium, quindi non è necessario impostare proprietà per utilizzarle. Per le dimensioni predefinite dei dischi, consulta Dimensioni predefinite dei dischi. Nel livello Premium, le dimensioni dei dischi non devono essere multipli di 375 GiB.
    • Meno proprietà: la proprietà dataproc.tier determina le risorse di computing e disco del driver e degli esecutori, quindi non è necessario configurarle separatamente. Le proprietà spark.dataproc.driver.compute.tier, spark.dataproc.executor.compute.tier, spark.dataproc.driver.disk.tier e spark.dataproc.executor.disk.tier vengono rimosse.
  • Lightning Engine per impostazione predefinita: i workload batch di livello Premium utilizzano Lightning Engine per impostazione predefinita. Per disattivare la funzionalità, imposta spark.dataproc.engine=default. Le sessioni interattive non utilizzano Lightning Engine per impostazione predefinita. Per attivarlo per una sessione interattiva, imposta spark.dataproc.engine=lightningEngine. Per utilizzare anche l'esecuzione di query native, imposta spark.dataproc.lightningEngine.runtime=native.

  • Forma della memoria highmem per impostazione predefinita: il runtime 4.0 introduce le forme della memoria, che determinano la quantità di memoria assegnata al driver e agli esecutori. Per impostazione predefinita, i driver e gli esecutori utilizzano la forma di memoria highmem, che fornisce 7.75 GiB di memoria per vCPU e offre più memoria rispetto alle impostazioni di memoria predefinite del runtime 3.0. Le forme di memoria semplificano anche la configurazione della memoria:

    • Nuove proprietà della forma della memoria: per selezionare la forma della memoria del driver o degli esecutori, imposta la proprietà spark.dataproc.driver.memory.shape o spark.dataproc.executor.memory.shape su highmem o standard. La forma di memoria standard fornisce 3.75 GiB di memoria per vCPU.
    • Dimensionamento automatico della memoria: Managed Service for Apache Spark dimensiona la memoria Spark e l'overhead di memoria del driver e degli esecutori in base alla loro forma di memoria, quindi non è necessario impostare spark.driver.memory, spark.executor.memory, spark.driver.memoryOverhead o spark.executor.memoryOverhead.
  • Avvio più rapido: nel livello Premium, i workload che utilizzano la configurazione predefinita del driver sono idonei per l'esecuzione del driver su una VM con avvio rapido, il che riduce il tempo di avvio del workload.

  • Catalogo di runtime Lakehouse come catalogo predefinito: i workload batch e le sessioni interattive utilizzano il catalogo di runtime Lakehouse come catalogo Spark predefinito, in modo da poter creare ed eseguire query sulle tabelle Apache Iceberg senza configurare un catalogo. Il catalogo Spark bigquery preconfigurato è ancora disponibile. Per utilizzare un catalogo diverso, consulta Disattiva il catalogo iniziale.

  • Quota DCU: i workload utilizzano la quota di unità di calcolo dati (DataComputeUnitsPerProjectPerRegion) di Managed Service for Apache Spark anziché le quote di CPU e disco di Compute Engine del tuo progetto. I workload che utilizzano le GPU continuano a consumare le quote di Compute Engine. Per saperne di più, consulta Quote serverless di Managed Service for Apache Spark.

Il runtime 4.0 include anche le funzionalità del runtime 3.0, come i workload regionali e multizona, le credenziali dell'utente finale per impostazione predefinita e la pulizia rapida delle risorse.

Forme di memoria

Nel runtime 4.0, la forma della memoria del driver e degli esecutori determina la quantità di memoria allocata. Una forma di memoria fornisce una quantità fissa di memoria per ogni vCPU. Managed Service for Apache Spark suddivide la memoria tra l'heap Spark (spark.driver.memory o spark.executor.memory) e l'overhead di memoria (spark.driver.memoryOverhead o spark.executor.memoryOverhead).

Il runtime 4.0 introduce le seguenti proprietà per selezionare la forma della memoria del driver e degli esecutori:

Proprietà Descrizione Predefinito
spark.dataproc.driver.memory.shape La forma della memoria del driver, highmem o standard. highmem
spark.dataproc.executor.memory.shape La forma della memoria degli esecutori, highmem o standard. highmem

La tabella seguente elenca la memoria fornita da ogni forma di memoria e le impostazioni di memoria Spark predefinite di un driver o un esecutore con 4 vCPU, che è il valore predefinito di spark.driver.cores e spark.executor.cores:

Forma della memoria Memoria per vCPU Workload batch PySpark: memoria e overhead di memoria Altri workload batch e sessioni interattive: memoria e overhead di memoria
highmem 7,75 GiB 21154m e 8462m 26924m e 2692m
standard 3,75 GiB 9681m e 3872m 12321m e 1232m

Note:

  • La memoria di una forma di memoria scala con il numero di vCPU. Ad esempio, un esecutore highmem con 8 vCPU riceve 62 GiB di memoria.

  • Parte della memoria di una forma di memoria è riservata al sistema e non è disponibile per Spark. I workload che utilizzano immagini container personalizzate prenotano memoria aggiuntiva, pertanto le impostazioni predefinite della memoria Spark sono leggermente inferiori.

  • I workload batch PySpark utilizzano un fattore di overhead della memoria pari a 0.4. Altri workload batch e sessioni interattive utilizzano un fattore di overhead della memoria pari a 0.1. Per modificare il modo in cui la memoria di una forma di memoria viene suddivisa tra l'heap e l'overhead di memoria, imposta spark.driver.memoryOverheadFactor o spark.executor.memoryOverheadFactor.

  • La forma della memoria determina la memoria di cui viene eseguito il provisioning per il driver e gli esecutori, il che influisce sull'utilizzo delle DCU. Per saperne di più, consulta Prezzi di Managed Service for Apache Spark.

Come vengono applicate le forme dei ricordi

Managed Service for Apache Spark applica le forme di memoria al driver e agli esecutori come segue:

  • Un driver o un esecutore utilizza la forma di memoria highmem, a meno che non imposti uno dei seguenti valori:

    • Una forma di ricordo: spark.dataproc.driver.memory.shape o spark.dataproc.executor.memory.shape.
    • Memoria: spark.driver.memory o spark.executor.memory.
    • Overhead di memoria: spark.driver.memoryOverhead o spark.executor.memoryOverhead.
    • Un acceleratore GPU. I driver e gli esecutori che utilizzano le GPU ricevono una quantità fissa di memoria.
  • Se imposti la memoria o l'overhead di memoria di un driver o di un esecutore e non imposti la forma della memoria, il driver o l'esecutore non utilizza una forma della memoria. Invece, Managed Service for Apache Spark dimensiona il driver o l'esecutore in base alla memoria specificata, come nei runtime precedenti.

  • L'impostazione del fattore di overhead della memoria di un driver o di un esecutore non ne modifica la forma della memoria.

  • Managed Service for Apache Spark rifiuta un workload batch o una sessione interattiva nei seguenti casi:

    • Imposta la forma della memoria di un driver o di un esecutore, nonché la memoria o l'overhead di memoria dello stesso driver o esecutore. Per modificare la modalità di suddivisione della memoria di una forma di memoria, imposta invece il fattore di overhead della memoria.
    • Imposta una forma di memoria su un valore diverso da highmem o standard.

Driver di avvio rapido

Nel livello Premium, Managed Service for Apache Spark può eseguire il driver su una VM con avvio rapido per ridurre il tempo di avvio del workload. Il driver è idoneo per l'esecuzione su una VM con avvio rapido se sono soddisfatte tutte le seguenti condizioni:

  • Il workload viene eseguito nel livello Premium, che è l'impostazione predefinita nel runtime 4.0.
  • Il conducente utilizza una forma di memoria.
  • Il driver ha 4 vCPU (spark.driver.cores=4), che è il valore predefinito.
  • La dimensione del disco del driver (spark.dataproc.driver.disk.size) è 450g o inferiore. Il valore predefinito è 400g.
  • Il workload non imposta spark.driver.memory, spark.driver.memoryOverhead, spark.driver.memoryOverheadFactor o un acceleratore GPU per il driver.

Un driver eseguito su una VM con avvio rapido riceve la stessa memoria degli altri driver che utilizzano la stessa forma di memoria.

Dimensione disco predefinita

Nel runtime 4.0, il livello di un workload determina la dimensione predefinita del disco del driver e degli esecutori:

Livello Dimensione predefinita del disco di ogni driver ed esecutore
Premium (predefinito) 100 GiB per vCPU e almeno 375 GiB. Ad esempio, 400 GiB per 4 vCPU.
Standard 75 GiB per vCPU e fino a 1000 GiB. Ad esempio, "300" GiB per 4 vCPU.

Per modificare le dimensioni del disco, imposta la proprietà di allocazione delle risorse spark.dataproc.driver.disk.size o spark.dataproc.executor.disk.size. Nel livello Premium, le dimensioni dei dischi non devono essere multipli di 375 GiB.

Funzionalità non supportate e modifiche al comportamento

La seguente funzionalità non è supportata o si comporta in modo diverso nel runtime 4.0:

  • Proprietà dei livelli di computing e disco: le proprietà spark.dataproc.driver.compute.tier, spark.dataproc.executor.compute.tier, spark.dataproc.driver.disk.tier e spark.dataproc.executor.disk.tier non sono supportate. Utilizza invece la proprietà dataproc.tier.

  • Proprietà della memoria off-heap: le proprietà spark.memory.offHeap.enabled e spark.memory.offHeap.size non sono supportate.

  • Subnet: devi specificare una subnet quando invii un workload batch o crei una sessione interattiva. Le subnet a doppio stack (IPv4 e IPv6) e solo IPv6 non sono supportate. Per saperne di più, consulta Configurazione di rete.

  • Connettore Spark BigQuery personalizzato: se aggiungi un file JAR del connettore Spark BigQuery a un workload batch, imposta anche la proprietà dataproc.artifacts.remove=spark-bigquery-connector per rimuovere il connettore preinstallato. In caso contrario, il workload batch non va a buon fine.

  • Bucket di gestione temporanea: il runtime 4.0 non utilizza i bucket di gestione temporanea di Cloud Storage.

  • Server di cronologia permanente (PHS): il PHS non è supportato. Utilizza invece la UI di Spark.

  • SparkR: i batch SparkR non sono supportati. Utilizza invece sparklyr.

  • Sessioni Jupyter: le sessioni Jupyter non sono supportate. Utilizza invece le sessioni Spark Connect, lo standard di settore per lo sviluppo Spark interattivo.

Librerie Python

La tabella seguente elenca i pacchetti Python inclusi nel runtime 4.0. Se nella tabella non è elencata una versione per un pacchetto, il runtime include l'ultima versione del pacchetto compatibile con gli altri pacchetti quando viene creato il runtime. Queste versioni possono cambiare nelle release secondarie del runtime.

Librerie Python serverless-spark-4.0-debian-13
Nome pacchetto Versione
accelerate
bigframes
ca-certificates
certifi
cookiecutter
cuda 12,9
cudnn
cython
dask
set di dati
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
cartiera
polars
psycopg2-binary
pyarrow
pydot
pyiceberg
pymongo
pynvml
python 3.13
python-dateutil
pytorch-gpu
richieste
rtree
scikit-image
scikit-learn
scipy
seaborn
sentence-transformers
sentencepiece
shap
spacy
sqlalchemy
statsforecast
sympy
tabelle
torcheval
torchvision
Transformers
virtualenv
wordcloud
xgboost 3,4