A API WorkflowTemplates do Serviço Gerenciado para Apache Spark 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 o fluxo de trabalho usar um cluster gerenciado, ele 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. Você pode criar dependências de job para que um job seja iniciado somente após a conclusão das dependências.
- Ao criar um modelo de fluxo de trabalho, o Serviço Gerenciado para Apache Spark não cria um cluster nem envia jobs para um cluster. O Serviço Gerenciado para Apache Spark cria ou seleciona um cluster e executa jobs de fluxo de trabalho no cluster 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 vai criar um cluster "efêmero" para executar jobs de fluxo de trabalho e, em seguida, excluir o cluster quando o fluxo de trabalho terminar.
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 anexados anteriormente ao cluster. O fluxo de trabalho será executado em um cluster que corresponda a todos os rótulos. Se vários clusters corresponderem a todos os rótulos, o Serviço Gerenciado para Apache Spark 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 Serviço Gerenciado para Apache Spark não exclui o cluster selecionado. Consulte Usar seletores de clusters com fluxos de trabalho para mais informações.
Parametrizado
Se você executar um modelo de fluxo de trabalho várias vezes com valores diferentes, use parâmetros para evitar editar o modelo de fluxo de trabalho para cada execução:
defina parâmetros no modelo e
transmita valores diferentes para os parâmetros de cada execução.
Consulte Parametrização de modelos de fluxo de trabalho para saber mais informações.
Inline
Workflows podem ser instanciados inline usando o gcloud comando com
arquivos YAML de modelo de fluxo de trabalho ou chamando a API
InstantiateInline
do Serviço Gerenciado para Apache Spark. Consulte Como usar Dataproc inline.
Os fluxos de trabalho inline não criam nem modificam recursos do modelo de fluxo de trabalho.
Casos de uso de modelos de fluxo de trabalho
Automação de tarefas repetitivas. Workflows encapsulam configurações e trabalhos de cluster mais usados.
Modelo de interação da API transacional fire-and-forget. Os modelos de fluxo de trabalho substituem as etapas envolvidas em um fluxo típico, que incluem:
- criar o cluster
- enviar jobs
- sondagem
- excluir o cluster
Os modelos de fluxo de trabalho usam um único token para rastrear o progresso, desde a criação do cluster até a exclusão, e automatizam o tratamento e a recuperação de erros. Eles também simplificam a integração do Serviço Gerenciado para Apache Spark com outras ferramentas, como funções do Cloud Run e o Serviço Gerenciado para Apache Airflow.
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 Serviço Gerenciado para Apache Spark e enviar tarefas exigem permissões do IAM de tudo ou nada. Os modelos de fluxo de trabalho usam uma permissão por modelo workflowTemplates.instantiate e não dependem de permissões de cluster ou job.