Questa pagina fornisce informazioni utili per monitorare ed eseguire il debug dei workflow Dataproc.
Elenca workflow
Un WorkflowTemplate con istanze WorkflowTemplate viene chiamato "workflow" ed è modellato come "operazione."
Esegui il seguente gcloud comando per elencare i workflow del tuo progetto:
gcloud dataproc operations list \ --region=region \ --filter="operationType = WORKFLOW"
... OPERATION_NAME DONE projects/.../operations/07282b66-2c60-4919-9154-13bd4f03a1f2 True projects/.../operations/1c0b0fd5-839a-4ad4-9a57-bbb011956690 True
Ecco una richiesta di esempio per elencare tutti i workflow avviati da un "terasort" modello:
gcloud dataproc operations list \ --region=region \ --filter="labels.goog-dataproc-workflow-template-id=terasort"
... OPERATION_NAME DONE projects/.../07282b66-2c60-4919-9154-13bd4f03a1f2 True projects/.../1c0b0fd5-839a-4ad4-9a57-bbb011956690 True
Tieni presente che nelle query successive viene utilizzata solo la parte UUID di OPERATION_NAME usata in successive
query.
Utilizzo di WorkflowMetadata
Il campo operation.metadata fornisce informazioni utili per diagnosticare
gli errori del workflow.
Ecco un esempio di
WorkflowMetadata,
incluso un grafico dei nodi (job), incorporato in un'operazione:
{
"name": "projects/my-project/regions/us-central1/operations/671c1d5d-9d24-4cc7-8c93-846e0f886d6e",
"metadata": {
"@type": "type.googleapis.com/google.cloud.dataproc.v1.WorkflowMetadata",
"template": "terasort",
"version": 1,
"createCluster": {
"operationId": "projects/my-project/regions/us-central1/operations/8d472870-4a8b-4609-9f7d-48daccb028fc",
"Done": true
},
"graph": {
"nodes": [
{
"stepId": "teragen",
"jobId": "teragen-vtrprwcgepyny",
"state": "COMPLETED"
},
{
"stepId": "terasort",
"prerequisiteStepIds": [
"teragen"
],
"jobId": "terasort-vtrprwcgepyny",
"state": "FAILED",
"error": "Job failed"
},
{
"stepId": "teravalidate",
"prerequisiteStepIds": [
"terasort"
],
"state": "FAILED",
"error": "Skipped, node terasort failed"
}
]
},
"deleteCluster": {
"operationId": "projects/my-project/regions/us-central1/operations/9654c67b-2642-4142-a145-ca908e7c81c9",
"Done": true
},
"state": "DONE",
"clusterName": "terasort-cluster-vtrprwcgepyny"
},
"done": true,
"error": {
"message": "Workflow failed"
}
}
Done!
Recupera un modello
Come mostrato nell'esempio precedente, metadata contiene l'ID
e la versione del modello.
"template": "terasort", "version": 1,
Se un modello non viene eliminato, le versioni del modello con istanze possono essere recuperate da una richiesta describe-with-version.
gcloud dataproc workflow-templates describe terasort \ --region=region \ --version=1
Elenca le operazioni cluster avviate da un modello:
gcloud dataproc operations list \ --region=region \ --filter="labels.goog-dataproc-workflow-instance-id = 07282b66-2c60-4919-9154-13bd4f03a1f2"
... OPERATION_NAME DONE projects/.../cf9ce692-d6c9-4671-a909-09fd62041024 True projects/.../1bbaefd9-7fd9-460f-9adf-ee9bc448b8b7 True
Ecco una richiesta di esempio per elencare i job inviati da un modello:
gcloud dataproc jobs list \ --region=region \ --filter="labels.goog-dataproc-workflow-template-id = terasort"
... JOB_ID TYPE STATUS terasort2-ci2ejdq2ta7l6 pyspark DONE terasort2-ci2ejdq2ta7l6 pyspark DONE terasort1-ci2ejdq2ta7l6 pyspark DONE terasort3-3xwsy6ubbs4ak pyspark DONE terasort2-3xwsy6ubbs4ak pyspark DONE terasort1-3xwsy6ubbs4ak pyspark DONE terasort3-ajov4nptsllti pyspark DONE terasort2-ajov4nptsllti pyspark DONE terasort1-ajov4nptsllti pyspark DONE terasort1-b262xachbv6c4 pyspark DONE terasort1-cryvid3kreea2 pyspark DONE terasort1-ndprn46nesbv4 pyspark DONE terasort1-yznruxam4ppxi pyspark DONE terasort1-ttjbhpqmw55t6 pyspark DONE terasort1-d7svwzloplbni pyspark DONE
Elenca i job inviati da un'istanza del workflow:
gcloud dataproc jobs list \ --region=region \ --filter="labels.goog-dataproc-workflow-instance-id = 07282b66-2c60-4919-9154-13bd4f03a1f2"
... JOB_ID TYPE STATUS terasort3-ci2ejdq2ta7l6 pyspark DONE terasort2-ci2ejdq2ta7l6 pyspark DONE terasort1-ci2ejdq2ta7l6 pyspark DONE
Timeout del workflow
Puoi impostare un timeout del workflow che annullerà il workflow se i job del workflow non vengono completati entro il periodo di timeout. Il periodo di timeout si applica al DAG (grafo aciclico orientato) dei job nel workflow (la sequenza di job nel workflow), non all' intera operazione del workflow. Il periodo di timeout inizia quando viene avviato il primo job del workflow e non include il tempo impiegato per creare un cluster gestito. Se un job è in esecuzione alla fine del periodo di timeout, tutti i job in esecuzione vengono arrestati, il workflow viene terminato e, se il workflow era in esecuzione su un cluster gestito, il cluster viene eliminato.
Vantaggio: utilizza questa funzionalità per evitare di dover terminare manualmente un workflow che non viene completato a causa di job bloccati.
Imposta un timeout del modello di workflow
Puoi impostare un periodo di timeout del modello di workflow quando crei un modello di workflow. Puoi anche aggiungere un timeout del workflow a un modello di workflow esistente aggiornando il modello di workflow.
gcloud
Per impostare un timeout del workflow su un nuovo modello, utilizza il flag --dag-timeout con il
comando gcloud dataproc workflow-templates create. Puoi utilizzare i suffissi "s", "m", "h" e "d"
per impostare rispettivamente i valori di durata in secondi, minuti, ore e giorni. La durata del timeout
deve essere compresa tra 10 minuti ("10m") e 24 ore ("24h" o "1d").
gcloud dataproc workflow-templates create template-id (such as "my-workflow") \ --region=region \ --dag-timeout=duration (from "10m" to "24h" or "1d"") \ ... other args ...
API
Per impostare un timeout del workflow, completa il WorkflowTemplate
dagTimeout
campo nell'ambito di una richiesta workflowTemplates.create.
Console
Al momento, la Google Cloud console non supporta la creazione di un modello di workflow.
Aggiorna un timeout del modello di workflow
Puoi aggiornare un modello di workflow esistente per modificare, aggiungere o rimuovere un timeout del workflow.
gcloud
Aggiunta o modifica di un timeout del workflow
Per aggiungere o modificare un timeout del workflow su un modello esistente, utilizza il
--dag-timeout flag con il
comando
gcloud dataproc workflow-templates set-dag-timeout. Puoi utilizzare i suffissi "s", "m", "h" e "d" per impostare rispettivamente i valori di durata in secondi, minuti,
ore e giorni. La durata del timeout deve essere compresa tra
10 minuti ("10m") e 24 ore ("24h").
gcloud dataproc workflow-templates set-dag-timeout template-id (such as "my-workflow") \ --region=region \ --dag-timeout=duration (from "10m" to "24h" or "1d")
Rimozione di un timeout del workflow
Per rimuovere un timeout del workflow da un modello esistente, utilizza il comando gcloud dataproc workflow-templates remove-dag-timeout.
gcloud dataproc workflow-templates remove-dag-timeout template-id (such as "my-workflow") \ --region=region
API
Aggiunta o modifica di un timeout del workflow
Per aggiungere o modificare un timeout del workflow su un modello esistente,
aggiorna il modello di workflow
compilando il campo
dagTimeout
del modello con il valore di timeout nuovo o modificato.
Rimozione di un timeout del workflow
Per rimuovere un timeout del workflow da un modello esistente,
aggiorna il modello di workflow
rimuovendo il campo
dagTimeout
del modello.
Console
Al momento, la Google Cloud console non supporta l'aggiornamento di un modello di workflow.