Utilizzare i flussi di lavoro

Per configurare ed eseguire un workflow:

  1. Creazione di un template di workflow
  2. Configurazione di un cluster gestito (effimero) o selezione di un cluster esistente
  3. Aggiungere job
  4. Creazione dell'istanza del modello per eseguire il workflow

Crea un modello

ConsoleGoogle Cloud

Seleziona Crea modello di workflow dalla pagina Managed Service for Apache Spark Workflow nella console Google Cloud , quindi conferma o fornisci le impostazioni di modello, cluster, job e dipendenze.

gcloud CLI

Esegui il seguente command per creare una risorsa del modello di workflow Managed Service for Apache Spark.

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 come parte di una richiesta workflowTemplates.create. Puoi aggiungere il campo WorkflowTemplate.EncryptionConfig.kmsKey per utilizzare la crittografia CMEK negli argomenti del job del modello di flusso di lavoro.

Configura o seleziona un cluster

Managed Service for Apache Spark può creare e utilizzare un nuovo cluster "gestito" per il tuo workflow o un cluster esistente.

  • Cluster esistente:consulta la sezione 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. Managed Service for Apache Spark creerà questo nuovo cluster per eseguire i job del flusso di lavoro, quindi lo eliminerà al termine del flusso di lavoro.

    Puoi configurare un cluster gestito per il tuo flusso di lavoro utilizzando la console Google Cloud , Google Cloud CLI o l'API Dataproc.

    ConsoleGoogle Cloud

    Seleziona Crea modello di workflow dalla pagina Managed Service for Apache Spark Workflow nella console Google Cloud , quindi conferma o fornisci le impostazioni di modello, cluster, job e dipendenze.

    Google Cloud CLI

    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.

    gcloud dataproc workflow-templates set-managed-cluster TEMPLATE_ID \
        --cluster-name=CLUSTER_NAME \
        --region=REGION \
        --master-machine-types="type=MACHINE_TYPE_1,rank=0" \
        --master-machine-types="type=MACHINE_TYPE_2,rank=1" \
        --worker-machine-types="type=PRIMARY_WORKER_MACHINE_TYPE_1,rank=0" \
        --worker-machine-types="type=PRIMARY_WORKER_MACHINE_TYPE_2,rank=1" \
        --num-workers=NUMBER \
        --service-account=SERVICE_ACCOUNT
    

    Note:

    • CLUSTER_NAME: Managed Service for Apache Spark aggiunge un suffisso al nome del cluster per garantirne l'unicità.
    • MACHINE_TYPE::puoi utilizzare i tipi di macchine con ranking VM flessibili per garantire la resilienza in caso di mancata disponibilità delle risorse.
    • SERVICE_ACCOUNT::puoi specificare un service account VM per il cluster gestito.

    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.

Aggiungi job a un template

Tutti i job vengono eseguiti contemporaneamente, a meno che tu non specifichi una o più dipendenze tra i 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.

gcloud CLI

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 di 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 di entrambi i 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 workflow esistenti e i workflow con istanze create dalla pagina Workflow di Managed Service for Apache Spark 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 workflow 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 workflow esistenti e i workflow con istanze create dalla pagina Workflow di Managed Service for Apache Spark nella console Google Cloud .

Errori dei job del workflow

Un errore in qualsiasi job di un workflow causerà l'interruzione del workflow. Managed Service for Apache Spark cercherà di mitigare l'effetto degli errori causando l'interruzione di tutti i job in esecuzione contemporaneamente e impedendo l'avvio dei job successivi.

Monitorare ed elencare un workflow

gcloud CLI

Per monitorare un flusso di lavoro:

gcloud dataproc operations describe OPERATION_ID \
    --region=REGION

Nota:l'ID operazione viene restituito quando istanzi il flusso di lavoro con gcloud dataproc workflow-templates instantiate (vedi Esegui 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 Managed Service for Apache Spark operations.get.

Per elencare i flussi di lavoro in esecuzione, utilizza l'API Managed Service for Apache Spark operations.list con un filtro delle etichette.

Console

Puoi visualizzare i modelli di workflow esistenti e i workflow con istanze create dalla pagina Workflow di Managed Service for Apache Spark nella console Google Cloud .

Terminare un workflow

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'ID operazione restituito quando istanzi il workflow con gcloud dataproc workflow-templates instantiate (vedi Esecuzione di un workflow).

API REST

Consulta l'API operations.cancel.

Console

Puoi visualizzare i modelli di workflow esistenti e i workflow con istanze create dalla pagina Workflow di Managed Service for Apache Spark 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.

gcloud CLI

I modelli di workflow possono essere aggiornati emettendo nuovi comandi gcloud workflow-templates che fanno riferimento a un ID modello di workflow esistente:

a un modello di workflow esistente.

API REST

Per apportare un aggiornamento a un modello con l'API REST:

  1. Chiama workflowTemplates.get, che restituisce il modello corrente con il campo version compilato con la versione corrente del server.
  2. Apporta aggiornamenti al modello recuperato.
  3. Chiama workflowTemplates.update con il modello aggiornato.

Console

Puoi visualizzare i modelli di workflow esistenti e i workflow con istanze create dalla pagina Workflow di Managed Service for Apache Spark nella console Google Cloud .

Eliminare un modello di workflow

gcloud CLI

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 Esegui un flusso di lavoro).

API REST

Consulta workflowTemplates.delete.

Console

Puoi visualizzare i modelli di workflow esistenti e i workflow con istanze create dalla pagina Workflow di Managed Service for Apache Spark nella console Google Cloud .