Use fluxos de trabalho

Configura e executa um fluxo de trabalho:

  1. Criar um modelo de fluxo de trabalho
  2. Configurar um cluster gerido (efémero) ou selecionar um cluster existente
  3. Adicionar trabalhos
  4. Instanciar o modelo para executar o fluxo de trabalho

Crie um modelo

CLI gcloud

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

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

Notas:

  • REGION: especifique a região onde o modelo vai ser executado.
  • TEMPLATE_ID: forneça um ID para o seu modelo, como "workflow-template-1".
  • Encriptação CMEK. Pode adicionar a flag --kms-key para usar a encriptação CMEK nos argumentos de tarefas do modelo de fluxo de trabalho.

API REST

Envie um WorkflowTemplate como parte de um pedido workflowTemplates.create. Pode adicionar o campo WorkflowTemplate.EncryptionConfig.kmsKey para usar a encriptação CMEK em argumentos de tarefas de modelos de fluxo de trabalho. kmsKey

Consola

Pode ver os modelos de fluxo de trabalho existentes e os fluxos de trabalho instanciados na página Fluxos de trabalho do Dataproc na Google Cloud consola.

Configure ou selecione um cluster

O Dataproc pode criar e usar um novo cluster "gerido" para o seu fluxo de trabalho ou um cluster existente.

  • Cluster existente: consulte o artigo Usar seletores de cluster com fluxos de trabalho para selecionar um cluster existente para o seu fluxo de trabalho.

  • Cluster gerido: tem de configurar um cluster gerido para o seu fluxo de trabalho. O Dataproc cria este novo cluster para executar tarefas de fluxo de trabalho e, em seguida, elimina o cluster no final do fluxo de trabalho.

    Pode configurar um cluster gerido para o seu fluxo de trabalho através da gcloudferramenta de linha de comandos ou da API Dataproc.

    comando gcloud

    Use flags herdadas de gcloud dataproc cluster create para configurar o cluster gerido, como o número de trabalhadores e o tipo de máquina principal e de trabalhador. O Dataproc adiciona um sufixo ao nome do cluster para garantir a exclusividade. Pode usar a flag --service-account para especificar uma conta de serviço da VM para o cluster gerido.

    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 fornecer como parte de um WorkflowTemplate concluído enviado com um pedido workflowTemplates.create ou workflowTemplates.update.

    Pode usar o campo GceClusterConfig.serviceAccount para especificar uma conta de serviço da VM para o cluster gerido.

    Consola

    Pode ver os modelos de fluxo de trabalho existentes e os fluxos de trabalho instanciados na página Fluxos de trabalho do Dataproc na Google Cloud consola.

Adicione empregos a um modelo

Todas as tarefas são executadas em simultâneo, a menos que especifique uma ou mais dependências de tarefas. As dependências de uma tarefa são expressas como uma lista de outras tarefas que têm de ser concluídas com êxito antes de a tarefa final poder ser iniciada. Tem de fornecer um step-id para cada tarefa. O ID tem de ser exclusivo no fluxo de trabalho, mas não tem de ser exclusivo a nível global.

comando gcloud

Use o tipo de tarefa e as flags herdadas de gcloud dataproc jobs submit para definir a tarefa a adicionar ao modelo. Opcionalmente, pode usar a flag ‑‑start-after job-id of another workflow job para que a tarefa seja iniciada após a conclusão de uma ou mais tarefas no fluxo de trabalho.

Exemplos:

Adicione a tarefa Hadoop "foo" 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 a tarefa "bar" ao modelo "my-workflow", que será executado após a conclusão bem-sucedida da tarefa "foo" do fluxo de trabalho.

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 outra tarefa "baz" ao modelo "my-workflow" para ser executada após a conclusão bem-sucedida das tarefas "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. Este campo é fornecido como parte de um WorkflowTemplate concluído enviado com um pedido workflowTemplates.create ou workflowTemplates.update.

Consola

Pode ver os modelos de fluxo de trabalho existentes e os fluxos de trabalho instanciados na página Fluxos de trabalho do Dataproc na Google Cloud consola.

Execute um fluxo de trabalho

A instanciação de um modelo de fluxo de trabalho executa o fluxo de trabalho definido pelo modelo. São suportadas várias instanciações de um modelo. Pode executar um fluxo de trabalho várias vezes.

comando gcloud

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

O comando devolve um ID da operação, que pode usar para acompanhar o estado do fluxo de trabalho.

Exemplo de comando e resultado:
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.

Consola

Pode ver os modelos de fluxo de trabalho existentes e os fluxos de trabalho instanciados na página Fluxos de trabalho do Dataproc na Google Cloud consola.

Falhas de tarefas do fluxo de trabalho

Uma falha em qualquer tarefa num fluxo de trabalho faz com que o fluxo de trabalho falhe. O Dataproc vai tentar mitigar o efeito das falhas fazendo com que todas as tarefas em execução em simultâneo falhem e impedindo que as tarefas subsequentes sejam iniciadas.

Monitorize e liste um fluxo de trabalho

comando gcloud

Para monitorizar um fluxo de trabalho:

gcloud dataproc operations describe OPERATION_ID \
    --region=REGION

Nota: o operation-id é devolvido quando instancia o fluxo de trabalho com gcloud dataproc workflow-templates instantiate (consulte o artigo Executar um fluxo de trabalho).

Para listar o estado do fluxo de trabalho:

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

API REST

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

Para apresentar uma lista de fluxos de trabalho em execução, use a API Dataproc operations.list com um filtro de etiquetas.

Consola

Pode ver os modelos de fluxo de trabalho existentes e os fluxos de trabalho instanciados na página Fluxos de trabalho do Dataproc na Google Cloud consola.

Termine um fluxo de trabalho

Pode terminar um fluxo de trabalho através da CLI Google Cloud ou chamando a API Dataproc.

comando gcloud

gcloud dataproc operations cancel OPERATION_ID \
    --region=REGION
Nota: o operation-id devolvido quando instancia o fluxo de trabalho com gcloud dataproc workflow-templates instantiate (consulte a secção Executar um fluxo de trabalho).

API REST

Consulte a API operations.cancel.

Consola

Pode ver os modelos de fluxo de trabalho existentes e os fluxos de trabalho instanciados na página Fluxos de trabalho do Dataproc na Google Cloud consola.

Atualize um modelo de fluxo de trabalho

As atualizações não afetam os fluxos de trabalho em execução. A nova versão do modelo só se aplica a novos fluxos de trabalho.

comando gcloud

Os modelos de fluxo de trabalho podem ser atualizados através da emissão de novos comandos gcloud workflow-templates que referenciam um ID de modelo de fluxo de trabalho existente:

a um modelo de fluxo de trabalho existente.

API REST

Para atualizar um modelo com a API REST:

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

Consola

Pode ver os modelos de fluxo de trabalho existentes e os fluxos de trabalho instanciados na página Fluxos de trabalho do Dataproc na Google Cloud consola.

Elimine um modelo de fluxo de trabalho

comando gcloud

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

Nota: o operation-id devolvido quando instancia o fluxo de trabalho com gcloud dataproc workflow-templates instantiate (consulte a secção Executar um fluxo de trabalho).

API REST

Consulte workflowTemplates.delete.

Consola

Pode ver os modelos de fluxo de trabalho existentes e os fluxos de trabalho instanciados na página Fluxos de trabalho do Dataproc na Google Cloud consola.