Visão geral dos modelos do fluxo de trabalho do Cloud Dataproc

A API WorkflowTemplates do Cloud Dataproc oferece um mecanismo flexível e fácil de usar para gerenciar e executar fluxos de trabalho. Um modelo de fluxo de trabalho é uma configuração de fluxo de trabalho reutilizável. Ele define um gráfico de jobs com informações sobre onde executar esses jobs.

Pontos principais

  • Instanciar um modelo de fluxo de trabalho inicia um fluxo de trabalho. Um fluxo de trabalho é uma operação que executa um gráfico acíclico dirigido (DAG, na sigla em inglês) de jobs em um cluster. Se usar um cluster gerenciado, o fluxo de trabalho criará o cluster, executará os jobs e excluirá o cluster quando os jobs forem concluídos.
  • Se usar um seletor de clusters, o fluxo de trabalho executará jobs em um cluster atual selecionado.
  • Os fluxos de trabalho são ideais para fluxos de job complexos. Crie dependências de job para que um job só seja iniciado após a conclusão bem-sucedida das dependências.
  • Criar um modelo de fluxo de trabalho não cria um cluster do Cloud Dataproc nem envia jobs. Clusters e jobs associados a fluxos de trabalho são criados quando um modelo de fluxo de trabalho é instanciado.

Tipos de modelos de fluxo de trabalho

Cluster gerenciado

Um modelo de fluxo de trabalho pode especificar um cluster gerenciado. O fluxo de trabalho criará esse cluster "efêmero" para executar jobs e excluirá o cluster quando o fluxo for concluído.

Seletor de clusters

Um modelo de fluxo de trabalho pode especificar um cluster atual em que jobs de fluxo de trabalho são executados especificando um ou mais rótulos de usuário que foram aplicados anteriormente a um ou mais clusters. O fluxo de trabalho será executado em um cluster correspondente a todos os rótulos especificados. Se vários clusters corresponderem aos rótulos, o Cloud Dataproc selecionará o cluster com mais memória disponível do YARN para executar todos os jobs do fluxo de trabalho. Ao final do fluxo de trabalho, o cluster selecionado não é excluído. Consulte Como usar seletores de clusters com fluxos de trabalho para ver mais informações.

Parametrizado

Se executar um modelo de fluxo de trabalho várias vezes com valores diferentes, será possível evitar a edição do modelo de fluxo de trabalho para cada execução definindo parâmetros no modelo e passando valores diferentes dos parâmetros de cada execução. Consulte Parametrização de modelos de fluxo de trabalho para saber mais informações.

Inline

Os fluxos de trabalho podem ser instanciados inline usando o comando gcloud com arquivos YAML de modelo de fluxo de trabalho ou chamando a API InstantiateInline do Cloud Dataproc. Os fluxos de trabalho inline não criam nem modificam recursos do modelo de fluxo de trabalho.

Casos de uso dos modelos de fluxo de trabalho

  • Automação de tarefas repetitivas. Os fluxos de trabalho encapsulam configurações e trabalhos de cluster mais usados.

  • Modelo de interação da API Transactional, Fire and Forget. Os modelos de fluxo de trabalho substituem as etapas envolvidas em um fluxo típico, que incluem a criação do cluster, o envio de jobs, a pesquisa e a exclusão do cluster. Eles usam um único token para rastrear o progresso, desde a criação do cluster até a exclusão, e automatizam o processamento e a recuperação de erros. Eles também simplificam a integração do Cloud Dataproc com outras ferramentas, como Cloud Functions e Cloud Composer.

  • Suporte para clusters efêmeros e de longa duração. Uma complexidade comum associada à execução do Apache Hadoop é ajustar e dimensionar clusters. Os clusters efêmeros (gerenciados) são mais fáceis de configurar porque executam uma única carga de trabalho. Os seletores de clusters podem ser usados com clusters de vida mais longa para executar repetidamente a mesma carga de trabalho sem incorrer no custo amortizado de criar e excluir clusters.

  • Segurança granular do IAM. Criar clusters do Cloud Dataproc e enviar tarefas exigem permissões do IAM de tudo ou nada. Os modelos de fluxo de trabalho usam uma permissão workflowTemplates.instantiate por modelo e não dependem de permissões de cluster ou job.