Usar seletores de cluster com fluxos de trabalho

É possível usar um seletor de cluster para escolher um cluster existente para o fluxo de trabalho como alternativa à execução de um fluxo de trabalho em um cluster gerenciado. Ao final do fluxo de trabalho, o cluster selecionado não é excluído.

Os seletores especificam um ou mais rótulos de usuário do Dataproc. Os clusters na mesma região do fluxo de trabalho em que os rótulos correspondem a todos os rótulos seletores estão qualificados para executar jobs de fluxo de trabalho. Se vários clusters corresponderem ao seletor, o Dataproc escolherá o cluster com a memória YARN que tiver mais espaço livre.

Como adicionar um seletor de cluster a um modelo

É possível adicionar um seletor de cluster a um modelo de fluxo de trabalho usando a Google Cloud CLI ou a API Dataproc.

Comando gcloud

gcloud dataproc workflow-templates set-cluster-selector template-id \
    --region=region \
    --cluster-labels=name=value[[,name=value]...]

API REST

Consulte WorkflowTemplatePlacement.ClusterSelector. Esse campo é fornecido como parte de um WorkflowTemplate preenchido e enviado com uma solicitação workflowTemplates.create ou workflowTemplates.update.

Console

É possível visualizar modelos de fluxo de trabalho atuais e fluxos de trabalho instanciados na página Fluxos de trabalho do Dataproc no console do Google Cloud.

Como usar rótulos aplicados automaticamente

É possível apontar um seletor de cluster para um cluster existente usando um dos seguintes rótulos de cluster aplicados automaticamente:

  • goog-dataproc-cluster-name
  • goog-dataproc-cluster-uuid

Exemplo:

gcloud dataproc workflow-templates set-cluster-selector template-id \
    --region=region \
    --cluster-labels=goog-dataproc-cluster-name=my-cluster

Como selecionar a partir de um pool de clusters

É possível permitir que o Dataproc escolha um cluster a partir de um pool de clusters. Os pools de clusters podem ser definidos com rótulos.

Exemplo:

gcloud dataproc clusters create cluster-1 --labels cluster-pool=pool-1 \
    --region=region
gcloud dataproc clusters create cluster-2 --labels cluster-pool=pool-1 \
    --region=region
gcloud dataproc clusters create cluster-3 --labels cluster-pool=pool-2 \
    --region=region

Após a criação do cluster...

gcloud dataproc workflow-templates create my-template \
    --region=region
gcloud dataproc workflow-templates set-cluster-selector my-template \
    --region=region \
    --cluster-labels=cluster-pool=pool-1

O fluxo de trabalho poderá ser executado no cluster-1 ou no cluster-2, mas não no cluster-3.