Como 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

Comando gcloud

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

gcloud dataproc workflow-templates create template-id (such as "my-workflow") \
    --region=region

API REST

Consulte workflowTemplates.create. Um WorkflowTemplate preenchido é enviado com uma solicitação workflowTemplates.create.

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 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 o fluxo de trabalho usando a ferramenta de linha de comando gcloud ou a API Dataproc.

    Comando gcloud

    Use sinalizações herdadas do gcloud dataproc cluster create para configurar o cluster gerenciado (número de worker, tipo de máquina mestre/worker etc). O Dataproc adicionará um sufixo ao nome do cluster para garantir a singularidade.

    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
    

    API REST

    Consulte o WorkflowTemplatePlacement.ManagedCluster. 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 a partir da página Fluxos de trabalho do Dataproc no Console do 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 a partir da página Fluxos de trabalho do Dataproc no Console do 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:
gcloud beta dataproc workflow-templates instantiate my-template-id \
    --region=region
...
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 a partir da página Fluxos de trabalho do Dataproc no Console do 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 a partir da página Fluxos de trabalho do Dataproc no Console do Cloud.

Como encerrar um fluxo de trabalho

Você pode encerrar um fluxo de trabalho usando a ferramenta de linha de comando gcloud 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 a partir da página Fluxos de trabalho do Dataproc no Console do 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 a partir da página Fluxos de trabalho do Dataproc no Console do 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 a partir da página Fluxos de trabalho do Dataproc no Console do Cloud.