O processo de configuração e execução de um fluxo de trabalho consiste em:
- criar um modelo de fluxo de trabalho;
- configurar um cluster gerenciado (temporário) ou selecionar um cluster existente;
- adicionar jobs;
- 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
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:
API REST
Para fazer uma atualização em um modelo com a API REST, siga estas etapas:
- Chame workflowTemplates.get, que retorna o modelo atual com o campo
version
preenchido com a versão atual do servidor. - Faça as atualizações do modelo recebido.
- 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.