L'API WorkflowTemplates di Dataproc offre un meccanismo flessibile e facile da usare per la gestione e l'esecuzione dei flussi di lavoro. Un modello di flusso di lavoro è una configurazione di flusso di lavoro riutilizzabile. Definisce un grafico di job con informazioni sul punto di esecuzione di questi job.
Punti chiave:
- La creazione di un'istanza di un modello di flusso di lavoro
avvia un flusso di lavoro. Un flusso di lavoro è un'operazione che esegue un
grafo aciclico diretto (DAG)
di job in un cluster.
- Se il flusso di lavoro utilizza un cluster gestito, crea il cluster, esegue i job e poi lo elimina al termine dei job.
- Se il flusso di lavoro utilizza un selettore di cluster, esegue i job su un cluster esistente selezionato.
- Workflows sono ideali per flussi di lavoro complessi. Puoi creare dipendenze dei job in modo che un job venga avviato solo dopo il completamento delle relative dipendenze.
- Quando crei un modello di workflow, Dataproc non crea un cluster né invia job a un cluster. Dataproc crea o seleziona un cluster ed esegue i job di flusso di lavoro sul cluster quando viene creata un'istanza di un modello di flusso di lavoro.
Tipi di modelli di workflow
Cluster gestito
Un modello di flusso di lavoro può specificare un cluster gestito. Il flusso di lavoro creerà un cluster "temporaneo" per eseguire i job del flusso di lavoro, quindi lo eliminerà al termine del flusso di lavoro.
Selettore di cluster
Un modello di flusso di lavoro può specificare un cluster esistente su cui eseguire i job del flusso di lavoro specificando uno o più etichette utente precedentemente associate al cluster. Il flusso di lavoro verrà eseguito su un cluster che corrisponde a tutte le etichette. Se più cluster corrispondono a tutte le etichette, Dataproc seleziona il cluster con la maggiore quantità di memoria YARN disponibile per eseguire tutti i job del flusso di lavoro. Al termine del flusso di lavoro, Dataproc non elimina il cluster selezionato. Per ulteriori informazioni, consulta Utilizzare i selettori di cluster con i flussi di lavoro.
Parametrizzato
Se esegui un modello di flusso di lavoro più volte con valori diversi, utilizza i parametri per evitare di modificarlo per ogni esecuzione:
definisci i parametri nel modello, quindi
Passa valori diversi per i parametri per ogni esecuzione.
Per ulteriori informazioni, consulta la sezione Parametrizzazzione dei modelli di flusso di lavoro.
In linea
Workflows possono essere istigati in linea utilizzando il comando gcloud
con
file YAML dei modelli di flusso di lavoro o chiamando l'API Dataproc
InstantiateInline (vedi Utilizzare i flussi di lavoro Dataproc in linea).
I flussi di lavoro incorporati non creano né modificano le risorse dei modelli di flusso di lavoro.
Casi d'uso dei modelli di workflow
Automazione di attività ripetitive. Workflows incapsulano configurazioni e job di cluster usati di frequente.
Modello di interazione API transazionale "fire-and-forget". I modelli di flusso di lavoro sostituiscono i passaggi di un flusso di lavoro tipico, tra cui:
- creazione del cluster
- invio di job
- polling
- l'eliminazione del cluster
I modelli di flusso di lavoro utilizzano un singolo token per monitorare l'avanzamento dalla creazione al recupero del cluster e automatizzare la gestione e il recupero degli errori. Semplificano inoltre l'integrazione di Dataproc con altri strumenti, come le funzioni Cloud Run e Cloud Composer.
Supporto per cluster effimeri e di lunga durata. Una complessità comune associata all'esecuzione di Apache Hadoop è l'ottimizzazione e la definizione della dimensione corretta dei cluster. I cluster effimeri (gestiti) sono più facili da configurare perché eseguono un singolo carico di lavoro. I selettori di cluster possono essere utilizzati con i cluster di durata più lunga per eseguire ripetutamente lo stesso carico di lavoro senza sostenere il costo ammortizzato della creazione e dell'eliminazione dei cluster.
Sicurezza IAM granulare. La creazione di cluster Dataproc e l'invio di job richiedono autorizzazioni IAM di tipo tutto o niente. I modelli di flusso di lavoro utilizzano un'autorizzazione per ogni modello workflowTemplates.instantiate e non dipendono dalle autorizzazioni del cluster o del job.