Per configurare ed eseguire un flusso di lavoro:
- Creazione di un modello di workflow
- Configurazione di un cluster gestito (effimero) o selezione di un cluster esistente
- Aggiungere job
- Creazione dell'istanza del modello per eseguire il workflow
Crea un modello
Interfaccia a riga di comando gcloud
Esegui il seguente command
per creare una risorsa del modello di workflow Dataproc.
gcloud dataproc workflow-templates create TEMPLATE_ID \ --region=REGION
Note:
- REGION: specifica la regione in cui verrà eseguito il modello.
- TEMPLATE_ID: fornisci un ID per il modello, ad esempio "workflow-template-1".
- crittografia CMEK. Puoi aggiungere il flag --kms-key per utilizzare la crittografia CMEK negli argomenti del job del modello di workflow.
API REST
Invia un WorkflowTemplate nell'ambito di una richiesta workflowTemplates.create. Puoi aggiungere il campo WorkflowTemplate.EncryptionConfig.kmsKey per utilizzare la crittografia CMEK negli argomenti del job del modello di workflow. kmsKey
Console
Puoi visualizzare i modelli di workflow esistenti e i workflow con istanze create dalla pagina Workflow di Dataproc nella console Google Cloud .
Configura o seleziona un cluster
Dataproc può creare e utilizzare un nuovo cluster "gestito" per il tuo workflow o un cluster esistente.
Cluster esistente:consulta Utilizzo dei selettori di cluster con i flussi di lavoro per selezionare un cluster esistente per il tuo flusso di lavoro.
Cluster gestito:devi configurare un cluster gestito per il tuo flusso di lavoro. Dataproc creerà questo nuovo cluster per eseguire i job del workflow, quindi lo eliminerà al termine del workflow.
Puoi configurare un cluster gestito per il tuo flusso di lavoro utilizzando lo strumento a riga di comando
gcloud
o l'API Dataproc.Comando g-cloud
Utilizza i flag ereditati da gcloud dataproc cluster create per configurare il cluster gestito, ad esempio il numero di worker e il tipo di macchina master e worker. Dataproc aggiungerà un suffisso al nome del cluster per garantire l'unicità. Puoi utilizzare il flag
--service-account
per specificare un service account VM per il cluster gestito.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
Consulta WorkflowTemplatePlacement.ManagedCluster, che puoi fornire nell'ambito di un WorkflowTemplate completato inviato con una richiesta workflowTemplates.create o workflowTemplates.update.
Puoi utilizzare il campo
GceClusterConfig.serviceAccount
per specificare un service account VM per il cluster gestito.Console
Puoi visualizzare i modelli di flusso di lavoro esistenti e i flussi di lavoro con istanze create dalla pagina Workflows di Dataproc nella console Google Cloud .
Aggiungi job a un modello
Tutti i job vengono eseguiti contemporaneamente, a meno che tu non specifichi una o più dipendenze del job. Le
dipendenze di un job sono espresse come un elenco di altri job che devono essere completati
correttamente prima che possa iniziare il job finale. Devi fornire un step-id
per ogni lavoro. L'ID deve essere univoco all'interno del flusso di lavoro, ma non deve essere
univoco a livello globale.
Comando g-cloud
Utilizza il tipo di job e i flag ereditati da
gcloud dataproc jobs submit
per definire il job da aggiungere al modello. Puoi utilizzare facoltativamente il flag
‑‑start-after job-id of another workflow job
per fare in modo che il job inizi dopo il completamento di uno o più altri job
nel flusso di lavoro.
Esempi:
Aggiungi il job Hadoop "foo" al modello "my-workflow".
gcloud dataproc workflow-templates add-job hadoop \ --region=REGION \ --step-id=foo \ --workflow-template=my-workflow \ -- space separated job args
Aggiungi il job "bar" al modello "my-workflow", che verrà eseguito dopo il completamento del job del workflow "foo".
gcloud dataproc workflow-templates add-job JOB_TYPE \ --region=REGION \ --step-id=bar \ --start-after=foo \ --workflow-template=my-workflow \ -- space separated job args
Aggiungi un altro job "baz" al modello "my-workflow" da eseguire dopo il completamento dei job "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
Vedi WorkflowTemplate.OrderedJob. Questo campo viene fornito nell'ambito di un WorkflowTemplate completato inviato con una richiesta workflowTemplates.create o workflowTemplates.update.
Console
Puoi visualizzare i modelli di flusso di lavoro esistenti e i flussi di lavoro con istanze create dalla pagina Workflows di Dataproc nella console Google Cloud .
Esegui un workflow
La creazione dell'istanza di un modello di workflow esegue il workflow definito dal modello. Sono supportate più istanze di un modello. Puoi eseguire un flusso di lavoro più volte.
Comando g-cloud
gcloud dataproc workflow-templates instantiate TEMPLATE_ID \ --region=REGION
Il comando restituisce un ID operazione, che puoi utilizzare per monitorare lo stato del flusso di lavoro.
Comando e output di esempio: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
Vedi workflowTemplates.instantiate.Console
Puoi visualizzare i modelli di flusso di lavoro esistenti e i flussi di lavoro con istanze create dalla pagina Workflows di Dataproc nella console Google Cloud .
Errori dei job del workflow
Un errore in qualsiasi job di un workflow causerà l'errore del workflow. Dataproc cercherà di mitigare l'effetto degli errori causando l'interruzione di tutti i job eseguiti contemporaneamente e impedendo l'avvio dei job successivi.
Monitorare ed elencare un flusso di lavoro
Comando g-cloud
Per monitorare un flusso di lavoro:
gcloud dataproc operations describe OPERATION_ID \ --region=REGION
Nota:l'ID operazione viene restituito quando istanzi il workflow
con gcloud dataproc workflow-templates instantiate
(vedi
Esecuzione di un workflow).
Per elencare lo stato del flusso di lavoro:
gcloud dataproc operations list \ --region=REGION \ --filter="labels.goog-dataproc-operation-type=WORKFLOW AND status.state=RUNNING"
API REST
Per monitorare un flusso di lavoro, utilizza l'API operations.get di Dataproc.
Per elencare i flussi di lavoro in esecuzione, utilizza l'API operations.list di Dataproc con un filtro per etichette.
Console
Puoi visualizzare i modelli di flusso di lavoro esistenti e i flussi di lavoro con istanze create dalla pagina Workflows di Dataproc nella console Google Cloud .
Terminare un flusso di lavoro
Puoi terminare un flusso di lavoro utilizzando Google Cloud CLI o chiamando l'API Dataproc.
Comando g-cloud
gcloud dataproc operations cancel OPERATION_ID \ --region=REGION
gcloud dataproc workflow-templates instantiate
(vedi
Esecuzione di un flusso di lavoro).
API REST
Consulta l'API operations.cancel.
Console
Puoi visualizzare i modelli di flusso di lavoro esistenti e i flussi di lavoro con istanze create dalla pagina Workflows di Dataproc nella console Google Cloud .
Aggiornare un modello di workflow
Gli aggiornamenti non influiscono sui workflow in esecuzione. La nuova versione del modello verrà applicata solo ai nuovi flussi di lavoro.
Comando g-cloud
I modelli di workflow possono essere aggiornati emettendo nuovi comandi gcloud workflow-templates
che fanno riferimento a un ID modello di workflow esistente:
API REST
Per apportare un aggiornamento a un modello con l'API REST:
- Chiama workflowTemplates.get, che restituisce il modello corrente con il campo
version
compilato con la versione corrente del server. - Apporta aggiornamenti al modello recuperato.
- Chiama workflowTemplates.update con il modello aggiornato.
Console
Puoi visualizzare i modelli di flusso di lavoro esistenti e i flussi di lavoro con istanze create dalla pagina Workflows di Dataproc nella console Google Cloud .
Eliminare un modello di workflow
Comando g-cloud
gcloud dataproc workflow-templates delete TEMPLATE_ID \ --region=REGION
Nota:l'ID operazione restituito quando istanzi il flusso di lavoro
con gcloud dataproc workflow-templates instantiate
(vedi
Esecuzione di un flusso di lavoro).
API REST
Vedi workflowTemplates.delete.Console
Puoi visualizzare i modelli di flusso di lavoro esistenti e i flussi di lavoro con istanze create dalla pagina Workflows di Dataproc nella console Google Cloud .