O Dataproc sem servidor usa propriedades do Spark para determinar os recursos de computação, memória e disco a serem alocados para a carga de trabalho em lote. Essas configurações de propriedade podem afetar o consumo e o custo da cota de carga de trabalho. Para mais informações, consulte Cotas do Dataproc sem servidor e Preços do Dataproc sem servidor para mais informações.
Definir as propriedades da carga de trabalho em lote do Spark
É possível especificar propriedades do Spark ao enviar uma carga de trabalho em lote do Dataproc sem servidor do Spark usando o console do Google Cloud, a CLI gcloud ou a API Dataproc.
Console
Acesse a página "Criar lote do Dataproc" no console do Google Cloud.
Na seção Propriedades, clique em Adicionar propriedade e insira
Key
(nome) eValue
de uma propriedade do Spark compatível.
gcloud
Exemplo de envio em lote da CLI gcloud:
gcloud dataproc batches submit spark --properties=spark.checkpoint.compress=true \ --region=region \ other args ...
API
Defina RuntimeConfig.properties com propriedades do Spark compatíveis como parte de uma solicitação batches.create.
Propriedades do Spark com suporte
O Dataproc sem servidor para Spark é compatível com a maioria das propriedades do Spark, mas não é compatível com propriedades do Spark relacionadas ao YARN e ao embaralhamento, como spark.master=yarn
e spark.shuffle.service.enabled
. Se o código do aplicativo Spark definir uma propriedade YARN ou shuffle, o aplicativo falhará.
Propriedades do ambiente de execução
O Dataproc sem servidor para Spark é compatível com as seguintes propriedades personalizadas do Spark para configurar o ambiente de execução:
Propriedade | Descrição |
---|---|
spark.dataproc.driverEnv.EnvironmentVariableName |
Adicione o EnvironmentVariableName ao processo do driver. É possível especificar diversas variáveis de ambiente. |
Propriedades de alocação de recursos
O Dataproc sem servidor para Spark é compatível com as seguintes propriedades do Spark para configurar a alocação de recursos:
Propriedade | Descrição | Padrão | Examples |
---|---|---|---|
spark.driver.cores |
O número de núcleos (vCPUs) a serem alocados para o driver do Spark.
Valores válidos: 4 , 8 , 16 . |
4 |
|
spark.driver.memory |
A quantidade de memória a ser alocada para o processo do driver do Spark, especificada no formato de string de memória da JVM com um sufixo de unidade de tamanho ("m", "g" ou "t"). Memória total do driver por núcleo do driver, incluindo a sobrecarga de memória do driver, que precisa estar entre |
512m , 2g |
|
spark.driver.memoryOverhead |
A quantidade de memória extra da JVM a ser alocada para o processo do driver do Spark, especificada no formato de string de memória da JVM com um sufixo de unidade de tamanho ("m", "g" ou "t"). Essa é uma memória não heap associada a sobrecargas de JVM,
strings internas e outras sobrecargas nativas, e inclui
memória usada por outros processos de driver, como processos de driver PySpark
e memória usada por outros processos não drivers executados no contêiner.
O tamanho máximo da memória do contêiner em que o driver é executado é determinado pela soma de A memória total do driver por núcleo do driver, incluindo a sobrecarga de memória do driver, precisa estar entre |
10% da memória do driver, exceto cargas de trabalho em lote do PySpark, que têm como padrão 40% da memória do driver | 512m , 2g |
spark.dataproc.driver.compute.tier |
O nível de computação a ser usado no driver. O nível de computação Premium oferece maior desempenho por núcleo, mas é cobrado a uma taxa mais alta. | standard | Standard, Premium |
spark.dataproc.driver.disk.size |
A quantidade de espaço em disco alocado para o driver,
especificada com um sufixo de unidade de tamanho ("k", "m", "g" ou "t").
Precisa ser pelo menos 250GiB .
Se o nível de disco Premium estiver selecionado no driver, os tamanhos válidos serão 375g, 750g, 1500g, 3000g, 6000g ou 9000g. |
100GiB por núcleo |
1024g , 2t |
spark.dataproc.driver.disk.tier |
O nível de disco a ser usado para armazenamento local e de ordem aleatória no driver.
O nível de disco Premium oferece melhor desempenho em IOPS e capacidade, mas é cobrado a uma taxa mais alta. Se o nível de disco Premium for selecionado no driver, ele também precisará ser selecionado usando spark.dataproc.driver.compute.tier=premium , e a quantidade de espaço em disco precisará ser especificada usando spark.dataproc.executor.disk.size .
Se o nível de disco Premium for selecionado, o driver alocará mais 50 GiB de espaço em disco para armazenamento do sistema, o que não é utilizável pelos aplicativos do usuário. | standard | Standard, Premium |
spark.executor.cores |
O número de núcleos (vCPUs) a serem alocados para cada executor do Spark.
Valores válidos: 4 , 8 , 16 . |
4 |
|
spark.executor.memory |
A quantidade de memória a ser alocada para cada processo do executor do Spark, especificada no formato de string de memória da JVM com um sufixo de unidade de tamanho ("m", "g" ou "t"). A memória total do executor por núcleo do executor, incluindo a sobrecarga de memória
do executor, precisa estar entre |
512m , 2g |
|
spark.executor.memoryOverhead |
A quantidade de memória extra da JVM a ser alocada para o processo do executor do Spark, especificada no formato de string de memória da JVM com um sufixo de unidade de tamanho ("m", "g" ou "t"). Essa é uma memória não heap usada para sobrecargas de JVM, strings internas e outras sobrecargas nativas. Ela inclui a memória do executor do PySpark e a memória usadas por outros processos não executores em execução no contêiner.
O tamanho máximo da memória do contêiner em que o executor é executado é determinado pela soma de A memória total do executor por núcleo do executor, incluindo a sobrecarga de memória
do executor, precisa estar entre |
10% da memória do executor, exceto cargas de trabalho em lote do PySpark, que têm como padrão 40% da memória do executor | 512m , 2g |
spark.dataproc.executor.compute.tier |
O nível de computação a ser usado nos executores. O nível de computação Premium oferece maior desempenho por núcleo, mas é cobrado a uma taxa mais alta. | standard | Standard, Premium |
spark.dataproc.executor.disk.size |
A quantidade de espaço em disco alocado para cada executor,
especificada com um sufixo de unidade de tamanho ("k", "m", "g" ou "t").
O espaço em disco do executor pode ser usado para embaralhar dados e preparar
dependências. Precisa ser pelo menos 250GiB .
Se o nível de disco Premium for selecionado no executor, os tamanhos válidos serão 375g, 750g, 1500g, 3000g, 6000g ou 9000g. |
100GiB por núcleo |
1024g , 2t |
spark.dataproc.executor.disk.tier |
O nível de disco a ser usado para armazenamento local e de embaralhamento nos executores.
O nível de disco Premium oferece melhor desempenho em IOPS e capacidade, mas é cobrado a uma taxa mais alta. Se o nível de disco Premium for selecionado no
executor, o nível de computação Premium também precisará ser selecionado usando
spark.dataproc.executor.compute.tier=premium ,
e a quantidade de espaço em disco precisará ser especificada usando
spark.dataproc.executor.disk.size .
Se o nível de disco Premium for selecionado, cada executor receberá mais 50 GiB de espaço em disco para armazenamento do sistema, o que não pode ser usado pelos aplicativos do usuário. | standard | Standard, Premium |
spark.executor.instances |
O número inicial de executores a serem alocados. Após o início de uma carga de trabalho
em lote, o escalonamento automático pode alterar o número de executores ativos. Precisa ser
no mínimo 2 e no máximo 2000 . |
Propriedades do escalonamento automático
Consulte Propriedades de alocação dinâmica do Spark para uma lista de propriedades do Spark que podem ser usadas para configurar o escalonamento automático sem servidor do Dataproc.
Outras propriedades
Propriedade | Descrição |
---|---|
dataproc.diagnostics.enabled |
Ative essa propriedade para executar diagnósticos em caso de falha ou cancelamento da carga de trabalho em lote. Se os diagnósticos estiverem ativados, a carga de trabalho em lote continuará usando recursos de computação após a conclusão da carga de trabalho até a conclusão do diagnóstico. Um URI que aponta para o local do tarball de diagnóstico está listado no campo da API Batch.RuntimeInfo.diagnosticOutputUri. |
dataproc.gcsConnector.version |
Use essa propriedade para fazer upgrade para uma versão do conector do Cloud Storage diferente da versão instalada com a versão do ambiente de execução da carga de trabalho em lote. |
dataproc.sparkBqConnector.version |
Use essa propriedade para fazer upgrade para uma versão do conector do Spark BigQuery diferente da versão instalada com a versão do ambiente de execução da carga de trabalho em lote. Consulte Usar o conector do BigQuery com o Dataproc sem servidor para Spark. |