Crie um cluster parcial do Dataproc

Para mitigar os efeitos da indisponibilidade de VMs especificadas pelo utilizador em regiões específicas em momentos específicos (esgotamentos de stock), o Dataproc permite-lhe pedir a criação de um partial cluster especificando um número mínimo de trabalhadores principais aceitável para permitir a criação de clusters.

Cluster padrão Cluster parcial
Se não for possível criar e inicializar um ou mais trabalhadores principais, a criação do cluster falha. Os workers criados continuam a ser executados e a gerar custos até serem eliminados pelo utilizador. Se for possível criar o número mínimo especificado de trabalhadores, o cluster é criado. Os trabalhadores com falhas (não inicializados) são eliminados e não incorrem em cobranças. Se não for possível criar e inicializar o número mínimo especificado de trabalhadores, o cluster não é criado. Os trabalhadores que são criados não são eliminados para permitir a depuração.
O tempo de criação de clusters é otimizado. Pode ocorrer um tempo de criação de clusters mais longo, uma vez que todos os nós têm de comunicar o estado de aprovisionamento.
Clusters de nó único estão disponíveis para criação. Os clusters de nó único não estão disponíveis para criação.

Escala automática

Use a autoscaling com a criação parcial de clusters para garantir que o número alvo (total) de trabalhadores principais é criado. O redimensionamento automático tenta adquirir trabalhadores com falhas em segundo plano se a carga de trabalho os exigir.

Segue-se um exemplo de uma política de escalamento automático que tenta novamente até que o número total de instâncias de trabalhadores principais atinja um tamanho alvo de 10. Os valores minInstances e maxInstances da política correspondem ao número mínimo e total de trabalhadores principais especificados no momento da criação do cluster (consulte o artigo Crie um cluster parcial). Definir o valor scaleDownFactor como 0 impede a redução da escala do cluster de 10 para 8 e ajuda a manter o número de trabalhadores no limite máximo de 10 trabalhadores.

workerConfig:
  minInstances: 8
  maxInstances: 10
basicAlgorithm:
  cooldownPeriod: 2m
  yarnConfig:
    scaleUpFactor: 1
    scaleDownFactor: 0
    gracefulDecommissionTimeout: 1h

Crie um cluster parcial

Pode usar a CLI Google Cloud ou a API Dataproc para criar um cluster parcial do Dataproc.

gcloud

Para criar um cluster parcial do Dataproc na linha de comandos, execute o comando gcloud dataproc clusters create seguinte localmente numa janela de terminal ou no Cloud Shell.

gcloud dataproc clusters create CLUSTER_NAME \
    --project=PROJECT \
    --region=REGION \
    --num-workers=NUM_WORKERS \
    --min-num-workers=MIN_NUM_WORKERS \
    other args ...

Substitua o seguinte:

  • CLUSTER_NAME: O nome do cluster tem de começar com uma letra minúscula, seguida de até 51 letras minúsculas, números e hífenes, e não pode terminar com um hífen.
  • PROJECT: especifique o projeto associado ao cluster de tarefas.
  • REGION: especifique a região do Compute Engine onde o cluster de tarefas vai estar localizado.
  • NUM_WORKERS: o número total de trabalhadores principais no cluster a criar, se disponível.
  • MIN_NUM_WORKERS: o número mínimo de trabalhadores principais a criar se não for possível criar o número total de trabalhadores especificado (NUM_WORKERS). A criação do cluster falha se não for possível criar este número mínimo de trabalhadores principais (os trabalhadores criados não são eliminados para permitir a depuração). Se esta flag for omitida, é tentada a criação de um cluster padrão com o número total de trabalhadores principais (NUM_WORKERS).

REST

Para criar um cluster parcial do Dataproc, especifique o número mínimo de trabalhadores principais no campo workerConfig.minNumInstances como parte de um pedido clusters.create.

Google Cloud

Apresente o número de trabalhadores aprovisionados

Depois de criar um cluster, pode executar o seguinte comando da CLI gcloud para listar o número de trabalhadores, incluindo quaisquer trabalhadores secundários, aprovisionados no seu cluster.

gcloud dataproc clusters list \
    --project=PROJECT \
    --region=REGION \
    --filter=clusterName=CLUSTER_NAME