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.0utilizzaUTF-8come codifica dei caratteri predefinita.Il runtime
4.0utilizza 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.tiersustandard. 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.0semplifica 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
375GiB. - Meno proprietà: la proprietà
dataproc.tierdetermina 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.tierespark.dataproc.executor.disk.tiervengono rimosse.
- 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
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, impostaspark.dataproc.engine=lightningEngine. Per utilizzare anche l'esecuzione di query native, impostaspark.dataproc.lightningEngine.runtime=native.Forma della memoria
highmemper impostazione predefinita: il runtime4.0introduce 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 memoriahighmem, che fornisce7.75GiB di memoria per vCPU e offre più memoria rispetto alle impostazioni di memoria predefinite del runtime3.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.shapeospark.dataproc.executor.memory.shapesuhighmemostandard. La forma di memoriastandardfornisce3.75GiB 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.memoryOverheadospark.executor.memoryOverhead.
- Nuove proprietà della forma della memoria: per selezionare la forma della memoria del driver o degli esecutori, imposta la proprietà
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
bigquerypreconfigurato è 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
highmemcon 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 a0.1. Per modificare il modo in cui la memoria di una forma di memoria viene suddivisa tra l'heap e l'overhead di memoria, impostaspark.driver.memoryOverheadFactorospark.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.shapeospark.dataproc.executor.memory.shape. - Memoria:
spark.driver.memoryospark.executor.memory. - Overhead di memoria:
spark.driver.memoryOverheadospark.executor.memoryOverhead. - Un acceleratore GPU. I driver e gli esecutori che utilizzano le GPU ricevono una quantità fissa di memoria.
- Una forma di ricordo:
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
highmemostandard.
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) è450go inferiore. Il valore predefinito è400g. - Il workload non imposta
spark.driver.memory,spark.driver.memoryOverhead,spark.driver.memoryOverheadFactoro 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.tierespark.dataproc.executor.disk.tiernon sono supportate. Utilizza invece la proprietàdataproc.tier.Proprietà della memoria off-heap: le proprietà
spark.memory.offHeap.enabledespark.memory.offHeap.sizenon 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-connectorper rimuovere il connettore preinstallato. In caso contrario, il workload batch non va a buon fine.Bucket di gestione temporanea: il runtime
4.0non 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.
| 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 |