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 operativo. 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 controllayarnApplications: > 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.