Propriedades do Spark

É 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 e spark.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.