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
QUEUEDe 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
dataprocavvia 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
dataprocinvia 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
RUNNINGmentre 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
RUNNINGsenza informazioni sulla causa dell'errore).
- Il job continua a essere segnalato come
- Il conducente esce.
L'agente
dataprocsegnala 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.