Utilizzare i flussi di lavoro

Per configurare ed eseguire un flusso di lavoro:

  1. Creazione di un modello di flusso di lavoro
  2. Configurazione di un cluster gestito (ephemeral) o selezione di un cluster esistente
  3. Aggiunta di job
  4. Creazione dell'istanza del modello per eseguire il flusso di lavoro

Crea un modello

Interfaccia a riga di comando gcloud

Esegui questo comando command per creare una risorsa modello di flusso di lavoro Dataproc.

gcloud dataproc workflow-templates create TEMPLATE_ID \
    --region=REGION

Note:

  • REGION: specifica il parametro region in cui 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 dei job del modello di flusso di lavoro.

API REST

Invia un WorkflowTemplate nell'ambito di una richiesta workflowTemplates.create. Puoi aggiungere il parametro Campo WorkflowTemplate.EncryptionConfig.kmsKey da utilizzare Crittografia CMEK sugli argomenti del job del modello di flusso di lavoro. kmsKey

Console

Puoi visualizzare i modelli di flusso di lavoro esistenti e i flussi di lavoro con istanze create dalla pagina Flussi di lavoro di Dataproc nella console Google Cloud.

Configurazione o selezione di un cluster

Dataproc può creare e utilizzare un nuovo modello "gestito" per le tue applicazioni un flusso di lavoro o un cluster esistente.

  • Cluster esistente: consulta Utilizzare i 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 l'esecuzione dei job del flusso di lavoro, quindi elimina il cluster alla fine del flusso di lavoro.

    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 flag ereditati da cluster dataproc gcloud create per configurare il cluster gestito, ad esempio il numero di worker il tipo di macchina master e worker. Dataproc aggiungerà un suffisso al nome del cluster per garantirne l'unicità. Puoi usare --service-account per specificare Account di servizio 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 come parte di un completata WorkflowTemplate inviate con un workflowTemplates.create o workflowTemplates.update richiesta.

    Puoi utilizzare il campo GceClusterConfig.serviceAccount per specificare un account di servizio 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 Flussi di lavoro di Dataproc nella console Google Cloud.

Aggiunta di job a un modello

Tutti i job vengono eseguiti contemporaneamente, a meno che 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 il job finale possa essere avviato. Devi fornire un step-id per ogni job. L'ID deve essere univoco all'interno del flusso di lavoro, ma non deve essere necessariamente 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. In via facoltativa, puoi utilizzare ‑‑start-after job-id of another workflow job per fare in modo che il job venga avviato dopo il completamento di uno o più altri job nel flusso di lavoro.

Esempi:

Aggiungi il job Hadoop "foo" al "mio-flusso di lavoro" modello.

gcloud dataproc workflow-templates add-job hadoop \
    --region=REGION \
    --step-id=foo \
    --workflow-template=my-workflow \
    -- space separated job args

Aggiungi "barra" del job al "mio-flusso di lavoro" che verrà eseguito dopo il job "foo" del flusso di lavoro è stato completato correttamente.

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" a "mio-flusso di lavoro" da eseguire dopo il deployment il completamento sia di "foo" e "bar" di lavoro.

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

Consulta: WorkflowTemplate.OrderedJob. Questo campo è fornito come parte di un completata WorkflowTemplate inviate con un workflowTemplates.create o workflowTemplates.update richiesta.

Console

Puoi visualizzare i modelli di flusso di lavoro esistenti e i flussi di lavoro di cui è stata creata un'istanza da alla pagina Flussi di lavoro di Dataproc nella console Google Cloud.

Esecuzione di un flusso di lavoro

La creazione di un'istanza di un modello di flusso di lavoro esegue il flusso di lavoro definito modello. Sono supportate più istanze di un modello: 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.

Comandi 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 Flussi di lavoro di Dataproc nella console Google Cloud.

Errori dei job del flusso di lavoro

Un errore in qualsiasi job di un flusso di lavoro ne causerà il fallimento. Dataproc cercherà di mitigare l'effetto degli errori causando l'esecuzione simultanea di job non riesce e impedisce i job successivi dall'inizio.

Monitoraggio ed elenco di un flusso di lavoro

Comando g-cloud

Per monitorare un flusso di lavoro:

gcloud dataproc operations describe OPERATION_ID \
    --region=REGION

Nota: l'operazione-id viene restituita quando viene creata un'istanza del flusso di lavoro con gcloud dataproc workflow-templates instantiate (vedi Eseguire un flusso di lavoro).

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 Dataproc operations.get.

Per elencare i flussi di lavoro in esecuzione, utilizza l'API Dataproc operations.list con un filtro per etichetta.

Console

Puoi visualizzare i modelli di flusso di lavoro esistenti e i flussi di lavoro di cui è stata creata un'istanza da alla pagina Flussi di lavoro di Dataproc nella console Google Cloud.

Terminazione di 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
Nota: l'operazione-id restituito quando viene creato un'istanza del flusso di lavoro con gcloud dataproc workflow-templates instantiate (vedi Eseguire un flusso di lavoro).

API REST

Vedi operations.cancel tramite Google Cloud CLI o tramite l'API Compute Engine.

Console

Puoi visualizzare i modelli di flusso di lavoro esistenti e i flussi di lavoro di cui è stata creata un'istanza da alla pagina Workflows di Dataproc nella console Google Cloud.

Aggiornamento di un modello di flusso di lavoro

Gli aggiornamenti non influiscono sui flussi di lavoro in esecuzione. La nuova versione del modello verrà applicata solo ai nuovi flussi di lavoro.

Comando g-cloud

I modelli di flusso di lavoro possono essere aggiornati inviando un nuovo gcloud workflow-templates che fanno riferimento a un template-id di flusso di lavoro esistente:

a un modello di flusso di lavoro esistente.

API REST

Per aggiornare un modello con l'API REST:

  1. Chiamare workflowTemplates.get, che restituisce il modello corrente con il campo version compilato con la versione attuale del server.
  2. Apporta aggiornamenti al modello recuperato.
  3. 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 Flussi di lavoro di Dataproc nella console Google Cloud.

Eliminazione di un modello di flusso di lavoro

Comando g-cloud

gcloud dataproc workflow-templates delete TEMPLATE_ID \
    --region=REGION

Nota: l'operazione-id restituito quando viene creato un'istanza del flusso di lavoro con gcloud dataproc workflow-templates instantiate (vedi Eseguire 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 Flussi di lavoro di Dataproc nella console Google Cloud.