Risoluzione dei problemi dei job Dataproc

Questa pagina fornisce informazioni utili per monitorare ed eseguire il debug dei job Dataproc e comprendere i messaggi di errore dei job Dataproc.

Monitoraggio e debug dei job

Utilizza Google Cloud CLI, l'API REST Dataproc e la console Google Cloud per analizzare i job Dataproc ed eseguirne il debug.

Interfaccia a riga di comando gcloud

Per esaminare lo stato di un job in esecuzione:

gcloud dataproc jobs describe job-id \
    --region=region

Per visualizzare l'output del driver del job, vedi Visualizzare l'output del job.

API REST

Chiama jobs.get per esaminare i campi JobStatus.State, JobStatus.Substate, JobStatus.details, YarnApplication.

Console

Per visualizzare l'output del driver del job, vedi Visualizzare l'output del job.

Per visualizzare il log dell'agente dataproc in Logging, seleziona Cluster Dataproc→Nome cluster→UUID del cluster dal selettore di cluster di Esplora log.

Utilizza quindi il selettore di log per selezionare google.dataproc.agent log.

Visualizza i log dei job in Logging

Se un job non riesce, puoi accedere ai log del job in Logging.

Determinare chi ha inviato un lavoro

Cercare i dettagli di un lavoro mostra chi ha inviato il lavoro nel campo submittedBy. Ad esempio, questo output del job mostra che user@domain ha inviato il job di esempio a un cluster.

...
placement:
  clusterName: cluster-name
  clusterUuid: cluster-uuid
reference:
  jobId: job-uuid
  projectId: project
status:
  state: DONE
  stateStartTime: '2018-11-01T00:53:37.599Z'
statusHistory:
- state: PENDING
  stateStartTime: '2018-11-01T00:33:41.387Z'
- state: SETUP_DONE
  stateStartTime: '2018-11-01T00:33:41.765Z'
- details: Agent reported job success
  state: RUNNING
  stateStartTime: '2018-11-01T00:33:42.146Z'
submittedBy: user@domain

Messaggi di errore

  • L'attività non è stata acquisita: indica che l'agente Dataproc sul nodo master non è riuscito ad acquisire l'attività dal piano di controllo. Questo problema si verifica spesso a causa di problemi di esaurimento della memoria o di rete. Se il job è stato eseguito correttamente in precedenza e non hai modificato le impostazioni di configurazione della rete, l'OOM è la causa più probabile, spesso il risultato dell'invio di molti job o job in esecuzione contemporaneamente i cui driver consumano molta memoria (ad esempio, job che caricano set di dati di grandi dimensioni in memoria).

  • Nessun agente attivo sui nodi master: indica che l'agente Dataproc sul nodo master non è attivo e non può accettare nuovi job. Questo problema si verifica spesso a causa di problemi di esaurimento della memoria (OOM) o di rete oppure se la VM del nodo master non è integro. Se il job è stato eseguito correttamente in precedenza e non hai modificato le impostazioni di configurazione di rete, la causa più probabile è la OOM, che spesso deriva dall'invio di molti job o job in esecuzione contemporaneamente i cui driver consumano molta memoria (job che caricano set di dati di grandi dimensioni in memoria). Questo problema può essere risolto riavviando (arresto e avvio) del cluster Dataproc o riprovando a inviare il job in un secondo momento. Nota: l'arresto di un cluster determina l'errore di tutti i job in esecuzione.

  • Attività non trovata: indica che il cluster è stato eliminato mentre era in esecuzione un job. Per evitare questo errore, prima di inviare un job, verifica che lo stato del cluster sia RUNNING visualizzando lo stato del cluster nella pagina Cluster della console Google Cloud, eseguendo il comando gcloud dataproc clusters describe o controllando ClusterStatus.State con una richiesta API clusters.get.