É possível definir as propriedades do Spark ao enviar uma carga de trabalho em lote do Spark.
Exemplo:
gcloud dataproc batches submit spark --properties=spark.checkpoint.compress=true \\ --region=region \\ other args ...
Observações:
O Dataproc Serverless for Spark é compatível com a maioria das propriedades do Spark, mas não com propriedades do Spark e relacionadas ao embaralhamento, como
spark.master=yarn
espark.shuffle.service.enabled
. Se o código do aplicativo Spark definir uma propriedade YARN ou Shuffle, o aplicativo falhará.Ao contrário do Dataproc nas propriedades de cluster do Compute Engine, as propriedades do servidor sem servidor do Dataproc para Spark não incluem um prefixo "spark:".
O escalonamento automático do Dataproc sem servidor para o Spark é controlado pelas propriedades de alocação de recursos do Spark.
Propriedades personalizadas do Spark
O Dataproc Serverless for Spark é compatível com as seguintes propriedades personalizadas do Spark:
Propriedade | Padrão | Descrição | Por exemplo |
---|---|---|---|
spark.dataproc.driver.disk.size |
100 GiB por núcleo | A quantidade de disco a ser usado para o nó do driver (o processo do driver em que o SparkContext é inicializado), especificado com um sufixo de unidade de tamanho ("k", "m", "g" ou "t" | 1.024 g, 2 t |
spark.dataproc.executor.disk.size |
100 GiB por núcleo | A quantidade de disco a ser usada para o nó do executor (em que o processo do executor é executado), especificada com um sufixo de unidade de tamanho ("k", "m", "g" ou "t" | 1.024 g, 2 t |
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 usa as propriedades do Spark para determinar os recursos de computação, memória e disco para alocar a carga de trabalho. O valor dessas propriedades pode afetar a cota consumida pela carga de trabalho e pelos custos. Consulte Cotas sem servidor do Dataproc e Preços sem servidor do Dataproc para mais informações.
Propriedade | Efeito |
---|---|
spark.driver.cores
|
O número de núcleos (vCPUs) que serão alocados para o driver do Spark. A memória do driver é dimensionada com núcleos de driver em uma proporção fixa (cerca de 4 GB/núcleo) e, no momento, não é controlável de maneira independente. Padrão: 4. Valores válidos: 4, 8, 16. |
spark.executor.cores
|
O número de núcleos (vCPUs) que serão alocados para cada executor do Spark. A memória do executor é dimensionada com núcleos do executor em uma proporção fixa (cerca de 4 GB/núcleo) e atualmente não é controlável de maneira independente. Padrão: 4. Valores válidos: 4, 8, 16. |
spark.dataproc.driver.disk.size
|
A quantidade de espaço em disco para alocar ao driver. Precisa ser pelo menos 200 GB. |
spark.dataproc.executor.disk.size
|
A quantidade de espaço em disco a alocar a cada executor. O espaço em disco do executor pode ser usado para dados embaralhados e para organizar dependências. Precisa ter pelo menos 200 GB. |
spark.executor.instances
|
O número inicial de executores a serem alocados. Depois que o lote começar a ser executado, o escalonamento automático poderá alterar o número de executores ativos. Precisa ser pelo menos 2 e no máximo 100. |
spark.dynamicAllocation.initialExecutors
|
O número inicial de executores que o escalonamento automático solicitará. Depois que o lote começar a ser executado, o escalonamento automático poderá mudar o número de executores ativos. Precisa ser pelo menos 2 e no máximo 100. |
spark.dynamicAllocation.minExecutors
|
O número mínimo de executores que podem ser reduzidos para o lote. Precisa ser pelo menos 2. |
spark.dynamicAllocation.maxExecutors
|
O número máximo de executores que o lote pode escalonar verticalmente. Precisa ser no máximo 1.000. |