Risolvere i problemi relativi ai job Dataproc

Questa pagina fornisce informazioni utili per monitorare e 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 e eseguire il debug dei job Dataproc.

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, consulta Visualizzare l'output del job.

API REST

Chiama jobs.get per esaminare i campi JobStatus.State, JobStatus.Substate, JobStatus.details e YarnApplication di un job.

Console

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

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

Quindi, utilizza il selettore dei log per selezionare i log google.dataproc.agent.

Visualizzare i log dei job in Logging

Se un job non va a buon fine, puoi accedere ai log del job in Logging.

Determinare chi ha inviato un job

La ricerca dei dettagli di un job mostra chi ha inviato il job 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

Attività non acquisita

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

Nessun agente nei nodi master è attivo

Ciò indica che l'agente Dataproc sul nodo principale non è attivo e non può accettare nuovi job. Questo accade spesso a causa di problemi di esaurimento della memoria (OOM) o di rete oppure se la VM del nodo principale non è in stato di esecuzione. Se il job è stato eseguito correttamente in precedenza e non hai modificato le impostazioni di configurazione di rete, la causa più probabile è OOM, che spesso résulte dall'invio di molti job in esecuzione contemporaneamente o job cuyos driver consumano molta memoria (job che caricano set di dati di grandi dimensioni nella memoria). Questo problema può essere risolto riavviando (interrompendo e poi avviando) il cluster Dataproc o riprovando a inviare il job in un secondo momento. Nota: l'arresto di un cluster causa l'errore di tutti i job in esecuzione.

Attività non trovata

Questo errore indica che il cluster è stato eliminato durante l'esecuzione di un job. Puoi eseguire le seguenti azioni per identificare il principale che ha eseguito l'eliminazione e confermare che l'eliminazione del cluster è avvenuta durante l'esecuzione di un job:

  • Visualizza gli audit log di Dataproc per identificare l'entità che ha eseguito l'operazione di eliminazione.

  • Utilizza il logging o l'interfaccia alla gcloud CLI per verificare che l'ultimo stato noto dell'applicazione YARN sia stato RUNNING:

    • Utilizza il seguente filtro in Logging:
    resource.type="cloud_dataproc_cluster"
    resource.labels.cluster_name="CLUSTER_NAME"
    resource.labels.cluster_uuid="CLUSTER_UUID"
    "YARN_APPLICATION_ID State change from"
    
    • Esegui gcloud dataproc jobs describe job-id --region=REGION, poi controlla yarnApplications: > STATE nell'output.

Per evitare errori Task not found, utilizza l'automazione per assicurarti che i cluster non vengano eliminati prima del completamento di tutti i job in esecuzione.