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.

Criar um modelo

CLI gcloud

Execute o command a seguir para criar um recurso de modelo de fluxo de trabalho do Serviço Gerenciado para Apache Spark.

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 "workflow-template-1".
  • Criptografia CMEK. É possível adicionar a --kms-key flag para usar a criptografia CMEK nos argumentos do job do modelo de fluxo de trabalho.

API REST

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

Console

É possível visualizar modelos de fluxo de trabalho atuais e fluxos de trabalho instanciados em a página Fluxos de trabalho do Serviço Gerenciado para Apache Spark no Google Cloud console.

Configure ou selecione um cluster

O Serviço Gerenciado para Apache Spark 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 Serviço Gerenciado para Apache Spark criará esse 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.

    Google Cloud CLI

    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 worker. O Serviço Gerenciado para Apache Spark adicionará um sufixo ao nome do cluster para garantir a singularidade. É possível usar a --service-account flag para especificar uma conta de serviço da 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 preenchido e enviado com uma solicitação workflowTemplates.create ou workflowTemplates.update.

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

    Console

    É possível visualizar modelos de fluxo de trabalho atuais e fluxos de trabalho instanciados em a página Fluxos de trabalho do Serviço Gerenciado para Apache Spark no Google Cloud console.

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.

CLI gcloud

Use o tipo de serviço e as flags herdadas de gcloud dataproc jobs submit para definir o job a ser adicionado ao modelo. Como alternativa, use a ‑‑start-after job-id of another workflow job flag 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 WorkflowTemplatepreenchido e enviado com uma solicitaçãoworkflowTemplates.createouworkflowTemplates.update

Console

É possível visualizar modelos de fluxo de trabalho atuais e fluxos de trabalho instanciados em a página Fluxos de trabalho do Serviço Gerenciado para Apache Spark no Google Cloud console.

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 ID 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 em a página Fluxos de trabalho do Serviço Gerenciado para Apache Spark no Google Cloud console.

Falhas no job de fluxo de trabalho

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

Monitorar e listar um fluxo de trabalho

CLI 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 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 API operations.get do Serviço Gerenciado para Apache Spark.

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

Console

É possível visualizar modelos de fluxo de trabalho atuais e fluxos de trabalho instanciados em a página Fluxos de trabalho do Serviço Gerenciado para Apache Spark no Google Cloud console.

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 Executar um fluxo de trabalho).

API REST

Consulte a operations.cancel API.

Console

É possível visualizar modelos de fluxo de trabalho atuais e fluxos de trabalho instanciados em a página Fluxos de trabalho do Serviço Gerenciado para Apache Spark no Google Cloud console.

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.

CLI gcloud

Os modelos de fluxo de trabalho podem ser atualizados com o envio de novos gcloud workflow-templates comandos 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 em a página Fluxos de trabalho do Serviço Gerenciado para Apache Spark no Google Cloud console.

Excluir um modelo de fluxo de trabalho

CLI 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 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 em a página Fluxos de trabalho do Serviço Gerenciado para Apache Spark no Google Cloud console.