Questa pagina illustra la sequenza di passaggi coinvolti nell'invio, nell'esecuzione e nel completamento di un job Dataproc. Inoltre, illustra il throttling e il debug dei job.
Flusso di job Dataproc
- L'utente invia il job a Dataproc.
- JobStatus.State
è contrassegnato come
PENDING
.
- JobStatus.State
è contrassegnato come
- Il job è in attesa di essere acquisito dall'agente
dataproc
.- Se il job viene acquisito,
JobStatus.State
viene contrassegnato come
RUNNING
. - Se il job non viene acquisito a causa di un errore dell'agente, di un errore della rete Compute Engine o di un'altra causa, viene contrassegnato come
ERROR
.
- Se il job viene acquisito,
JobStatus.State
viene contrassegnato come
- Una volta acquisito un job dall'agente, quest'ultimo verifica che siano disponibili risorse sufficienti sul nodo master del cluster Dataproc per avviare il driver.
- Se non sono disponibili risorse sufficienti, il job viene ritardato (limitato).
JobStatus.Substate
mostra il job come
QUEUED
e Job.JobStatus.details fornisce informazioni sulla causa del ritardo.
- Se non sono disponibili risorse sufficienti, il job viene ritardato (limitato).
JobStatus.Substate
mostra il job come
- Se sono disponibili risorse sufficienti, l'agente
dataproc
avvia il processo del driver di job.- In questa fase, in genere sono in esecuzione una o più applicazioni in Apache Hadoop YARN. Tuttavia, le applicazioni Yarn potrebbero non avviarsi finché il driver non completa la scansione delle directory Cloud Storage o l'esecuzione di altre attività di job di avvio.
- L'agente
dataproc
invia periodicamente aggiornamenti a Dataproc relativi all'avanzamento dei job, alle metriche del cluster e alle applicazioni Yarn associate al job (consulta Monitoraggio e debug dei job). - Le richieste di Yarn sono state completate.
- Il job continua a essere segnalato come
RUNNING
mentre il driver esegue qualsiasi attività di completamento del job, ad esempio la materializzazione delle raccolte. - Un errore non gestito o non rilevato nel thread principale può lasciare il driver in uno stato zombie (contrassegnato come
RUNNING
senza informazioni sulla causa dell'errore).
- Il job continua a essere segnalato come
- Il driver esce.
L'agente
dataproc
segnala il completamento a Dataproc.- Dataproc segnala il job come
DONE
.
- Dataproc segnala il job come
Concorrenza job
Puoi configurare il numero massimo di job Dataproc simultanei con la proprietà del cluster dataproc:dataproc.scheduler.max-concurrent-jobs quando crei un cluster. Se il valore di questa proprietà non è impostato, il limite superiore per i job simultanei viene calcolato come max((masterMemoryMb - 3584) / masterMemoryMbPerJob, 5)
. masterMemoryMb
viene determinato dal tipo di macchina della VM principale. masterMemoryMbPerJob
è
1024
per impostazione predefinita, ma è configurabile al momento della creazione del cluster con la proprietà del cluster
dataproc:dataproc.scheduler.driver-size-mb.
Passaggi successivi
- Consulta la sezione Risolvere i problemi relativi ai job