Questa pagina descrive la sequenza di passaggi coinvolti nell'invio, nell'esecuzione e nel completamento di un job Dataproc. Vengono inoltre trattati il throttling e il debug dei job.
Flusso dei 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
è contrassegnato come
RUNNING
. - Se il job non viene acquisito a causa di un errore dell'agente, di un errore di rete di Compute Engine o di un'altra causa, il job viene contrassegnato come
ERROR
.
- Se il job viene acquisito,
JobStatus.State
è 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 termina la scansione delle directory Cloud Storage o l'esecuzione di altre attività del job di avvio.
- L'agente
dataproc
invia periodicamente aggiornamenti a Dataproc sullo stato di avanzamento del job, sulle metriche del cluster e sulle applicazioni Yarn associate al job (vedi Monitoraggio e debug dei job). - Richiesta o richieste di Yarn completate.
- Il job continua a essere segnalato come
RUNNING
mentre l'autista esegue le 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 conducente 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
è determinato dal tipo di macchina della VM master. 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 Risoluzione dei problemi relativi ai job.