Componentes da versão 4.0 do ambiente de execução do Spark
| Componente | 4.0.0 |
|---|---|
| Apache Spark | 4.2.0 |
| Conector do Cloud Storage | 4.0.7 |
| Conector do BigQuery | 0.46.0 |
| Java | 25 |
| Python | 3.13 |
| Scala | 2.13.17 |
Observações:
O ambiente de execução
4.0usaUTF-8como a codificação de caracteres padrão.O ambiente de execução
4.0usa o Pixi em vez do Conda para gerenciar o ambiente do Python. Para ver os pacotes incluídos no ambiente, consulte Bibliotecas do Python.
Recursos e melhorias do Runtime 4.0
Em comparação com o ambiente de execução 3.0, o ambiente de execução 4.0 inclui as seguintes
mudanças nos padrões e recursos:
Nível Premium por padrão: as cargas de trabalho do Batch são executadas no nível Premium, a menos que você defina a propriedade
dataproc.tiercomostandard. As sessões interativas sempre são executadas no nível Premium. As cargas de trabalho do nível Premium são cobradas de acordo com a taxa de unidade de computação de dados (DCU) Premium.O ambiente de execução
4.0também facilita a configuração das cargas de trabalho:- Padrões melhores: no nível Premium, o driver e os executores usam
recursos de computação e disco premium por padrão. Portanto, não é necessário definir
propriedades para usá-los. Para saber os tamanhos padrão de disco, consulte
Tamanho padrão de disco. No nível Premium, os tamanhos de disco não
precisam ser múltiplos de
375GiB. - Menos propriedades: a propriedade
dataproc.tierdetermina os recursos de computação e disco do driver e dos executores, então não é necessário configurá-los separadamente. As propriedadesspark.dataproc.driver.compute.tier,spark.dataproc.executor.compute.tier,spark.dataproc.driver.disk.tierespark.dataproc.executor.disk.tiersão removidas.
- Padrões melhores: no nível Premium, o driver e os executores usam
recursos de computação e disco premium por padrão. Portanto, não é necessário definir
propriedades para usá-los. Para saber os tamanhos padrão de disco, consulte
Tamanho padrão de disco. No nível Premium, os tamanhos de disco não
precisam ser múltiplos de
Lightning Engine por padrão: as cargas de trabalho em lote do nível Premium usam o Lightning Engine por padrão. Para desativar, defina
spark.dataproc.engine=default. As sessões interativas não usam o Lightning Engine por padrão. Para ativá-lo em uma sessão interativa, definaspark.dataproc.engine=lightningEngine. Para usar também a execução de consulta nativa, definaspark.dataproc.lightningEngine.runtime=native.Formato de memória
highmempor padrão: o ambiente de execução4.0introduz formatos de memória, que determinam quanta memória o driver e os executores recebem. Os drivers e executores usam o formato de memóriahighmempor padrão, que fornece7.75GiB de memória por vCPU e oferece mais memória do que as configurações de memória padrão do ambiente de execução3.0. Os formatos de memória também facilitam a configuração da memória:- Novas propriedades de formato de memória: para selecionar o formato de memória do driver
ou dos executores, defina a propriedade
spark.dataproc.driver.memory.shapeouspark.dataproc.executor.memory.shapecomohighmemoustandard. O formato de memóriastandardfornece3.75GiB de memória por vCPU. - Dimensionamento automático de memória: o Serviço Gerenciado para Apache Spark dimensiona a memória do Spark e a sobrecarga de memória do driver e dos executores com base no formato de memória deles. Assim, você não precisa definir
spark.driver.memory,spark.executor.memory,spark.driver.memoryOverheadouspark.executor.memoryOverhead.
- Novas propriedades de formato de memória: para selecionar o formato de memória do driver
ou dos executores, defina a propriedade
Inicialização mais rápida: no nível Premium, as cargas de trabalho que usam a configuração padrão do driver estão qualificadas para executar o driver em uma VM de inicialização rápida, o que reduz o tempo de inicialização da carga de trabalho.
Catálogo do ambiente de execução do Lakehouse como o catálogo padrão: as cargas de trabalho em lote e as sessões interativas usam o catálogo do ambiente de execução do Lakehouse como o catálogo padrão do Spark. Assim, é possível criar e consultar tabelas do Apache Iceberg sem configurar um catálogo. O catálogo pré-configurado do Spark
bigqueryainda está disponível. Para usar um catálogo diferente, consulte Desativar o catálogo inicial.Cota de DCU: as cargas de trabalho consomem a cota de unidades de computação de dados (
DataComputeUnitsPerProjectPerRegion) do Serviço Gerenciado para Apache Spark, em vez das cotas de CPU e disco do Compute Engine do seu projeto. As cargas de trabalho que usam GPUs continuam consumindo cotas do Compute Engine. Para mais informações, consulte Cotas sem servidor do Serviço Gerenciado para Apache Spark.
O ambiente de execução 4.0 também inclui os recursos do
ambiente de execução 3.0, como
cargas de trabalho regionais e multizonais, credenciais de usuário final por padrão e
limpeza rápida de recursos.
Formatos de memória
No ambiente de execução do 4.0, o formato de memória do driver e dos executores determina
a quantidade de memória alocada para eles. Um formato de memória fornece uma quantidade fixa de memória para
cada vCPU. O Serviço Gerenciado para Apache Spark divide essa memória entre o heap do Spark (spark.driver.memory ou spark.executor.memory) e a sobrecarga de memória (spark.driver.memoryOverhead ou spark.executor.memoryOverhead).
O ambiente de execução 4.0 introduz as seguintes propriedades para selecionar o formato de memória do driver e dos executores:
| Propriedade | Descrição | Padrão |
|---|---|---|
spark.dataproc.driver.memory.shape |
O formato de memória do driver, highmem ou
standard. |
highmem |
spark.dataproc.executor.memory.shape |
O formato de memória dos executores, highmem ou
standard. |
highmem |
A tabela a seguir lista a memória fornecida por cada formato de memória e as
configurações de memória padrão do Spark de um driver ou executor com 4 vCPUs, que
é o valor padrão de spark.driver.cores e spark.executor.cores:
| Formato de memória | Memória por vCPU | Cargas de trabalho em lote do PySpark: memória e sobrecarga de memória | Outras cargas de trabalho em lote e sessões interativas: memória e sobrecarga de memória |
|---|---|---|---|
highmem |
7,75 GiB | 21154m e 8462m |
26924m e 2692m |
standard |
3,75 GiB | 9681m e 3872m |
12321m e 1232m |
Observações:
A memória de um formato de memória é escalonada com o número de vCPUs. Por exemplo, um executor
highmemque tem 8 vCPUs recebe 62 GiB de memória.Parte da memória de um formato de memória é reservada para o sistema e não está disponível para o Spark. As cargas de trabalho que usam imagens de contêiner personalizadas reservam mais memória, então as configurações padrão de memória do Spark são um pouco menores.
As cargas de trabalho em lote do PySpark usam um fator de sobrecarga de memória de
0.4. Outras cargas de trabalho em lote e sessões interativas usam um fator de sobrecarga de memória de0.1. Para mudar como a memória de um formato de memória é dividida entre o heap e a sobrecarga de memória, definaspark.driver.memoryOverheadFactorouspark.executor.memoryOverheadFactor.O formato de memória determina a memória provisionada para o driver e os executores, o que afeta o uso da DCU. Para mais informações, consulte os preços do Serviço Gerenciado para Apache Spark.
Como as formas de memória são aplicadas
O Serviço Gerenciado para Apache Spark aplica formatos de memória ao driver e aos executores da seguinte maneira:
Um driver ou executor usa o formato de memória
highmem, a menos que você defina uma das seguintes opções:- Um formato de memória:
spark.dataproc.driver.memory.shapeouspark.dataproc.executor.memory.shape. - Memória:
spark.driver.memoryouspark.executor.memory. - Sobrecarga de memória:
spark.driver.memoryOverheadouspark.executor.memoryOverhead. - Um acelerador de GPU. Os drivers e executores que usam GPUs recebem uma quantidade fixa de memória.
- Um formato de memória:
Se você definir a memória ou a sobrecarga de memória de um driver ou executor e não definir o formato de memória, o driver ou executor não vai usar um formato de memória. Em vez disso, o Serviço Gerenciado para Apache Spark dimensiona o driver ou executor com base na memória que você especificar, como nos ambientes de execução anteriores.
Definir o fator de sobrecarga de memória de um driver ou executor não muda o formato da memória.
O Serviço Gerenciado para Apache Spark rejeita uma carga de trabalho em lote ou uma sessão interativa nos seguintes casos:
- Ele define o formato de memória de um driver ou executor, além da memória ou da sobrecarga de memória do mesmo driver ou executor. Para mudar como a memória de um formato de memória é dividida, defina o fator de sobrecarga de memória.
- Ele define um formato de memória com um valor diferente de
highmemoustandard.
Driver de inicialização rápida
No nível Premium, o Serviço Gerenciado para Apache Spark pode executar o driver em uma VM de inicialização rápida para reduzir o tempo de inicialização da carga de trabalho. O driver está qualificado para ser executado em uma VM de inicialização rápida se todas as condições a seguir forem atendidas:
- A carga de trabalho é executada no nível Premium, que é o padrão no ambiente de execução
4.0. - O motorista usa um formato de memória.
- O driver tem 4 vCPUs (
spark.driver.cores=4), que é o padrão. - O tamanho do disco do driver (
spark.dataproc.driver.disk.size) é450gou menos. O padrão é400g. - A carga de trabalho não define
spark.driver.memory,spark.driver.memoryOverhead,spark.driver.memoryOverheadFactorou um acelerador de GPU para o driver.
Um driver executado em uma VM de inicialização rápida recebe a mesma memória que outros drivers que usam o mesmo formato de memória.
Tamanho padrão do disco
No ambiente de execução 4.0, o nível de uma carga de trabalho
determina o tamanho de disco padrão do driver e dos executores:
| Nível | Tamanho de disco padrão de cada driver e executor |
|---|---|
| Premium (padrão) | 100 GiB por vCPU e pelo menos 375 GiB. Por exemplo, 400 GiB para 4 vCPUs. |
| Padrão | `75` GiB por vCPU e até 1.000 GiB. Por exemplo, 300 GiB para 4 vCPUs. |
Para mudar o tamanho do disco, defina a propriedade de alocação de recursos spark.dataproc.driver.disk.size ou spark.dataproc.executor.disk.size.
No nível Premium, os tamanhos de disco não precisam ser múltiplos de 375 GiB.
Funcionalidades não compatíveis e mudanças de comportamento
As seguintes funcionalidades não são compatíveis ou se comportam de maneira diferente no
ambiente de execução do 4.0:
Propriedades de computação e de nível de disco: as propriedades
spark.dataproc.driver.compute.tier,spark.dataproc.executor.compute.tier,spark.dataproc.driver.disk.tierespark.dataproc.executor.disk.tiernão são compatíveis. Em vez disso, use a propriedadedataproc.tier.Propriedades de memória fora do heap: as propriedades
spark.memory.offHeap.enabledespark.memory.offHeap.sizenão são compatíveis.Sub-redes: é necessário especificar uma sub-rede ao enviar uma carga de trabalho em lote ou criar uma sessão interativa. Não há suporte para sub-redes de pilha dupla (IPv4 e IPv6) e somente IPv6. Para mais informações, consulte Configuração de rede.
Conector personalizado do Spark BigQuery: se você adicionar um arquivo JAR do conector do Spark BigQuery a uma carga de trabalho em lote, defina também a propriedade
dataproc.artifacts.remove=spark-bigquery-connectorpara remover o conector pré-instalado. Caso contrário, a carga de trabalho em lote vai falhar.Buckets de preparo: o ambiente de execução do
4.0não usa buckets de preparo do Cloud Storage.Servidor de histórico persistente (PHS): o PHS não é compatível. Em vez disso, use a interface do Spark.
SparkR: não há suporte para lotes do SparkR. Em vez disso, use
sparklyr.Sessões do Jupyter: não há suporte para sessões do Jupyter. Em vez disso, use as sessões do Spark Connect, o padrão do setor para desenvolvimento interativo do Spark.
Bibliotecas do Python
A tabela a seguir lista os pacotes do Python incluídos no ambiente de execução 4.0.
Se a tabela não listar uma versão para um pacote, o ambiente de execução vai incluir a
versão mais recente do pacote que é compatível com os outros pacotes quando
o ambiente de execução for criado. Essas versões podem mudar em versões secundárias do ambiente de execução.
| Nome do pacote | Versão |
|---|---|
| acelerar | |
| bigframes | |
| ca-certificates | |
| certifi | |
| cookiecutter | |
| cuda | 12,9 |
| cudnn | |
| cython | |
| dask | |
| conjuntos de dados | |
| 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 | |
| papermill | |
| polars | |
| psycopg2-binary | |
| pyarrow | |
| pydot | |
| pyiceberg | |
| pymongo | |
| pynvml | |
| python | 3.13 |
| python-dateutil | |
| pytorch-gpu | |
| solicitações | |
| rtree | |
| scikit-image | |
| scikit-learn | |
| scipy | |
| seaborn | |
| sentence-transformers | |
| sentencepiece | |
| shap | |
| spacy | |
| sqlalchemy | |
| statsforecast | |
| sympy | |
| tabelas | |
| torcheval | |
| torchvision | |
| transformers | |
| virtualenv | |
| wordcloud | |
| XGBoost | 3.4 |