Usar fluxos de trabalho

O processo de configuração e execução de um fluxo de trabalho consiste em:

  1. criar um modelo de fluxo de trabalho;
  2. configurar um cluster gerenciado (temporário) ou selecionar um cluster existente;
  3. adicionar jobs;
  4. instanciar o modelo para executar o fluxo de trabalho.

Como criar um modelo

CLI da gcloud

Execute o seguinte command para criar um recurso de modelo de fluxo de trabalho do Dataproc.

gcloud dataproc workflow-templates create TEMPLATE_ID \
    --region=REGION

Observações:

  • REGION: especifique a região em que o modelo será executado.
  • TEMPLATE_ID: forneça um ID para o modelo, como "fluxo-de-trabalho-modelo-1".
  • Criptografia CMEK. É possível adicionar a flag --kms-key para usar a criptografia CMEK nos argumentos de jobs do modelo de fluxo de trabalho.

API REST

Envie um WorkflowTemplate como parte de uma solicitação workflowTemplates.create. É possível adicionar o campo WorkflowTemplate.EncryptionConfig.kmsKey para usar a criptografia CMEK nos argumentos de jobs do modelo de fluxo de trabalho. kmsKey

Console

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

Como configurar ou selecionar um cluster

O Dataproc pode criar e utilizar um novo cluster "gerenciado" para o fluxo de trabalho ou um cluster existente.

  • Cluster atual: consulte Como utilizar seletores de cluster com fluxos de trabalho para selecionar um cluster atual para seu fluxo de trabalho.

  • Cluster gerenciado: é preciso configurar um cluster gerenciado para seu fluxo de trabalho. O Dataproc criará este novo cluster para executar jobs de fluxo de trabalho e excluirá o cluster no final do fluxo de trabalho.

    É possível configurar um cluster gerenciado para seu fluxo de trabalho usando a ferramenta de linha de comando gcloud ou a API Dataproc.

    Comando gcloud

    Use flags herdadas de gcloud dataproc cluster create para configurar o cluster gerenciado, como o número de workers e o tipo de máquina mestre e de worker. O Dataproc vai adicionar um sufixo ao nome do cluster para garantir a singularidade. É possível usar a flag --service-account para especificar uma conta de serviço de VM para o cluster gerenciado.

    gcloud dataproc workflow-templates set-managed-cluster TEMPLATE_ID \
        --region=REGION \
        --master-machine-type=MACHINE_TYPE \
        --worker-machine-type=MACHINE_TYPE \
        --num-workers=NUMBER \
        --cluster-name=CLUSTER_NAME
        --service-account=SERVICE_ACCOUNT
    

    API REST

    Consulte WorkflowTemplatePlacement.ManagedCluster, que pode ser fornecido como parte de um WorkflowTemplate completo enviado com uma solicitação workflowTemplates.create ou workflowTemplates.update.

    É possível usar o campo GceClusterConfig.serviceAccount para especificar uma conta de serviço de VM para o cluster gerenciado.

    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 adicionar jobs a um modelo

Todos os jobs são executados simultaneamente, a menos que você especifique uma ou mais dependências do job. As dependências de um job são expressas como uma lista de outros jobs que precisam ser concluídos com êxito antes que o job final possa ser iniciado. Forneça um step-id para cada job. É necessário que o código seja exclusivo no fluxo de trabalho, mas ele não precisa ser exclusivo globalmente.

Comando gcloud

Use o tipo de job e as sinalizações herdadas de gcloud dataproc jobs submit para definir o job a ser adicionado ao modelo. Como alternativa, use a sinalização ‑‑start-after job-id of another workflow job para que o job inicie após a conclusão de um ou mais jobs no fluxo de trabalho.

Exemplos:

Adicione o job "foo" do Hadoop ao modelo "my-workflow".

gcloud dataproc workflow-templates add-job hadoop \
    --region=REGION \
    --step-id=foo \
    --workflow-template=my-workflow \
    -- space separated job args

Adicione "bar" do job ao modelo "my-workflow", que será executado após a conclusão do job do fluxo de trabalho "foo".

gcloud dataproc workflow-templates add-job JOB_TYPE \
    --region=REGION \
    --step-id=bar \
    --start-after=foo \
    --workflow-template=my-workflow \
    -- space separated job args

Adicione outro job "baz" ao modelo "my-workflow" para ser executado após a conclusão dos jobs "foo" e "bar".

gcloud dataproc workflow-templates add-job JOB_TYPE \
    --region=REGION \
    --step-id=baz \
    --start-after=foo,bar \
    --workflow-template=my-workflow \
    -- space separated job args

API REST

Consulte WorkflowTemplate.OrderedJob. 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 executar um fluxo de trabalho

A instância de um modelo de fluxo de trabalho executa o fluxo de trabalho definido pelo modelo As várias instâncias de um modelo são compatíveis. É possível executar várias vezes um fluxo de trabalho.

Comando gcloud

gcloud dataproc workflow-templates instantiate TEMPLATE_ID \
    --region=REGION

O comando retorna um código da operação, que pode ser usado para rastrear o status do fluxo de trabalho.

Exemplo de comando e saída:
gcloud beta dataproc workflow-templates instantiate my-template-id \
    --region=us-central1
...
WorkflowTemplate [my-template-id] RUNNING
...
Created cluster: my-template-id-rg544az7mpbfa.
Job ID teragen-rg544az7mpbfa RUNNING
Job ID teragen-rg544az7mpbfa COMPLETED
Job ID terasort-rg544az7mpbfa RUNNING
Job ID terasort-rg544az7mpbfa COMPLETED
Job ID teravalidate-rg544az7mpbfa RUNNING
Job ID teravalidate-rg544az7mpbfa COMPLETED
...
Deleted cluster: my-template-id-rg544az7mpbfa.
WorkflowTemplate [my-template-id] DONE

API REST

Consulte workflowTemplates.instantiate.

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.

Falhas no job de fluxo de trabalho

Uma falha em qualquer nó em um fluxo de trabalho causará falha nesse fluxo. O Dataproc tentará minimizar o efeito das falhas fazendo com que todos os jobs em execução simultaneamente falhem e impedindo que os jobs seguintes comecem.

Como monitorar e listar um fluxo de trabalho

Comando gcloud

Para monitorar um fluxo de trabalho:

gcloud dataproc operations describe OPERATION_ID \
    --region=REGION

Observação: o ID da operação é retornado quando você instancia o fluxo de trabalho com gcloud dataproc workflow-templates instantiate. Consulte Como executar um fluxo de trabalho.

Para listar o status do fluxo de trabalho:

gcloud dataproc operations list \
    --region=REGION \
    --filter="labels.goog-dataproc-operation-type=WORKFLOW AND status.state=RUNNING"

API REST

Para monitorar um fluxo de trabalho, use a operations.get API do Dataproc.

Para listar os fluxos de trabalho em execução, use a API operations.list do Dataproc com um filtro de rótulo.

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 encerrar um fluxo de trabalho

É possível encerrar um fluxo de trabalho usando a Google Cloud CLI ou chamando a API Dataproc.

Comando gcloud

gcloud dataproc operations cancel OPERATION_ID \
    --region=REGION
Observação:o ID da operação é retornado quando você instancia o fluxo de trabalho com gcloud dataproc workflow-templates instantiate. Consulte Como executar um fluxo de trabalho.

API REST

Consulte a API operations.cancel.

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 atualizar um modelo de fluxo de trabalho

As atualizações não afetam a execução dos fluxos de trabalho. A nova versão do modelo só será aplicada aos novos fluxos de trabalho.

Comando gcloud

Os modelos de fluxo de trabalho podem ser atualizados com o envio de novos comandos gcloud workflow-templates que se referem a um código do modelo do fluxo de trabalho existente:

para um modelo de fluxo de trabalho existente.

API REST

Para fazer uma atualização em um modelo com a API REST, siga estas etapas:

  1. Chame workflowTemplates.get, que retorna o modelo atual com o campo version preenchido com a versão atual do servidor.
  2. Faça as atualizações do modelo recebido.
  3. Chame workflowTemplates.update com o modelo atualizado.

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 excluir um modelo de fluxo de trabalho

Comando gcloud

gcloud dataproc workflow-templates delete TEMPLATE_ID \
    --region=REGION

Observação: o ID da operação é retornado quando você instancia o fluxo de trabalho com gcloud dataproc workflow-templates instantiate. Consulte Como executar um fluxo de trabalho.

API REST

Consulte workflowTemplates.delete.

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.