Vita di un job Dataproc

Questa pagina delinea la sequenza dei passaggi necessari per l'invio, l'esecuzione e il completamento di un job di Dataproc. Inoltre, illustra la limitazione e il debug dei job.

Flusso di job Dataproc

  1. L'utente invia il job a Dataproc.
  2. 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 di rete di Compute Engine o per un'altra causa, il job è contrassegnato come ERROR.
  3. Dopo che l'agente acquisisce un job, 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.
  4. Se sono disponibili risorse sufficienti, l'agente dataproc avvia il processo del driver del job.
    • In questa fase, solitamente sono presenti una o più applicazioni in esecuzione in Apache Hadoop YARN. Tuttavia, le applicazioni Yarn potrebbero non avviarsi finché il driver non ha completato la scansione delle directory di Cloud Storage o non ha eseguito altre attività del job di avvio.
  5. L'agente dataproc invia periodicamente aggiornamenti a Dataproc sull'avanzamento del job, sulle metriche del cluster e sulle applicazioni Yarn associate al job (vedi Monitoraggio e debug dei job).
  6. Hai completato le domande di Yarn.
    • Il job continua a essere riportato come RUNNING mentre il conducente esegue qualsiasi attività di completamento dei job, come la materializzazione delle raccolte.
    • Un errore non gestito o non rilevato nel thread principale può lasciare il driver in stato zombie (contrassegnato come RUNNING senza informazioni sulla causa dell'errore).
  7. Uscite del conducente. L'agente dataproc segnala il completamento a Dataproc.
    • Dataproc segnala il job come DONE.

Contemporaneità job

Puoi configurare il numero massimo di job Dataproc simultanei con la proprietà cluster dataproc:dataproc.scheduler.max-concurrent-jobs quando crei un cluster. Se questo valore della proprietà non è impostato, il limite superiore dei 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à cluster dataproc:dataproc.scheduler.driver-size-mb.

Passaggi successivi