L'API Dataproc WorkflowTemplates fornisce un meccanismo flessibile e facile da usare per gestire ed eseguire i flussi di lavoro. Un modello di flusso di lavoro è una configurazione del flusso di lavoro riutilizzabile. Definisce un grafico dei job con informazioni su dove eseguire questi job.
Punti chiave:
- L'istanza di un modello di flusso di lavoro avvia un flusso di lavoro. Un flusso di lavoro è un'operazione che esegue un
grafico aciclico diretto (DAG)
di job su un cluster.
- Se il flusso di lavoro utilizza un cluster gestito, crea il cluster, esegue i job, quindi elimina il cluster al termine dei job.
- Se il flusso di lavoro utilizza un selettore cluster, esegue i job su un cluster esistente selezionato.
- I flussi di lavoro sono ideali per flussi di lavoro complessi. Puoi creare dipendenze per il job in modo che un job inizi solo dopo il suo completamento corretto.
- Quando crei un modello di flusso di lavoro Dataproc non crea un cluster o non invia job a un cluster. Dataproc crea o seleziona un cluster ed esegue i job del flusso di lavoro sul cluster quando un modello di flusso di lavoro viene indagato.
Tipi di modelli di flusso di lavoro
Cluster gestito
Un modello di flusso di lavoro può specificare un cluster gestito. Il flusso di lavoro creerà un cluster "temporaneo" per eseguire i flussi di lavoro e poi eliminerà il cluster al termine del flusso di lavoro.
Selettore di cluster
Un modello di flusso di lavoro può specificare un cluster esistente su cui eseguire job di flusso di lavoro specificando una o più etichette utente collegate in precedenza al cluster. Il flusso di lavoro verrà eseguito in un cluster che corrisponde a tutte le etichette. Se più cluster corrispondono a tutte le etichette, Dataproc seleziona il cluster con la maggior parte della 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 la sezione Utilizzare i selettori dei cluster con i flussi di lavoro.
Parametrizzato
Se eseguirai un modello di flusso di lavoro più volte con valori diversi, utilizza i parametri per evitare di modificare il modello di flusso di lavoro per ogni esecuzione:
i parametri nel modello, quindi
passare valori diversi per i parametri di ogni esecuzione.
Per ulteriori informazioni, consulta la sezione Parametrizzazione dei modelli di flusso di lavoro.
In linea
È possibile creare un'istanza di flussi di lavoro in linea utilizzando il comando gcloud
con i file YAML del modello di flusso di lavoro o chiamando l'API
istantaneo Inline di Dataproc (vedi Utilizzare i flussi di lavoro di Dataproc in linea).
I flussi di lavoro in linea non creano né modificano le risorse dei modelli di flusso di lavoro.
Casi d'uso dei modelli di flusso di lavoro
Automazione di attività ripetitive. I flussi di lavoro incapsulano le configurazioni e i job del cluster utilizzati di frequente.
Modello di interazione API Fire-and-Forget transazionale. I modelli di flusso di lavoro sostituiscono i passaggi previsti dal flusso tipico, che includono:
- la creazione del cluster
- invio di offerte di lavoro
- sondaggio
- l'eliminazione del cluster
I modelli di flusso di lavoro utilizzano un singolo token per monitorare l'avanzamento dalla creazione del cluster all'eliminazione e automatizzare la gestione e il recupero degli errori. Semplificano anche l'integrazione di Dataproc con altri strumenti come Cloud Functions e Cloud Composer.
Supporto per cluster temporanei e di lunga durata. Una complessità comune associata all'esecuzione di Apache Hadoop è la configurazione e il dimensionamento ottimale dei cluster. I cluster temporanei (gestiti) sono più facili da configurare poiché eseguono un singolo carico di lavoro. I selettori dei cluster possono essere utilizzati con i cluster di maggiore durata per eseguire ripetutamente lo stesso carico di lavoro senza incorrere nel 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 tutte o nulla. I modelli di flusso di lavoro utilizzano un'autorizzazione workflowTemplates.instantiate per modello e non dipendono dalle autorizzazioni per cluster o job.