Configura e executa um fluxo de trabalho:
- Criar um modelo de fluxo de trabalho
- Configurar um cluster gerido (efémero) ou selecionar um cluster existente
- Adicionar trabalhos
- 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
gcloud
ferramenta 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
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:
API REST
Para atualizar um modelo com a API REST:
- Chame workflowTemplates.get, que devolve o modelo atual com o campo
version
preenchido com a versão atual do servidor. - Faça atualizações ao modelo obtido.
- 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.