Esta página descreve a sequência de etapas envolvidas no envio, execução e conclusão de um job do Dataproc. Aqui você também encontra redução e depuração do job.
Fluxo de jobs do Dataproc
- O usuário envia o job para o Dataproc.
- JobStatus.State está marcado como
PENDING
.
- JobStatus.State está marcado como
- O job aguarda ser adquirido pelo agente
dataproc
.- Se o job for adquirido, o JobStatus.State será marcado como
RUNNING
. - Se não for adquirido por causa de uma falha no agente, na rede do Google Compute Engine ou por outro motivo, o job será marcado como
ERROR
.
- Se o job for adquirido, o JobStatus.State será marcado como
- Depois que um job é adquirido pelo agente, ele verifica se há
recursos suficientes disponíveis no nó mestre do cluster do Dataproc
para iniciar o driver.
- Se não houver recursos suficientes disponíveis, o job ficará atrasado (limitado).
JobStatus.Substate mostra o job como
QUEUED
, e Job.JobStatus.details fornece informações sobre a causa do atraso.
- Se não houver recursos suficientes disponíveis, o job ficará atrasado (limitado).
JobStatus.Substate mostra o job como
- Se houver recursos suficientes disponíveis, o agente
dataproc
iniciará o processo do driver do job.- Nesse estágio, geralmente há um ou mais aplicativos em execução no Apache Hadoop HDFS. No entanto, é possível que os aplicativos Yarn não sejam iniciados até que o driver termine de verificar os diretórios do Cloud Storage ou executar outras tarefas do job de inicialização.
- O agente
dataproc
envia periodicamente atualizações ao Dataproc sobre o progresso do job, as métricas de cluster e os aplicativos Yarn associados ao job. Consulte Monitoramento e depuração de jobs. - Os aplicativos Yarn são concluídos.
- O job continua sendo relatado como
RUNNING
enquanto o driver realiza todas as tarefas de conclusão do job, como as coleções de materialização. - Uma falha não processada ou não detectada no thread principal pode deixar o driver em um estado zumbi (marcado como
RUNNING
sem informações quanto à causa da falha).
- O job continua sendo relatado como
- O driver sai.
O agente
dataproc
relata a conclusão para o Dataproc.- O Dataproc relata o job como
DONE
.
- O Dataproc relata o job como
Simultaneidade do job
É possível configurar o número máximo de jobs simultâneos do Dataproc com a propriedade dataproc:dataproc.scheduler.max-concurrent-jobs ao criar um cluster. Se esse valor de propriedade não estiver definido,
o limite superior de jobs simultâneos será calculado como
max((masterMemoryMb - 3584) / masterMemoryMbPerJob, 5)
. masterMemoryMb
é determinado pelo tipo de máquina da VM mestre. masterMemoryMbPerJob
é
1024
por padrão, mas pode ser configurado na criação do cluster com a
propriedade de cluster
dataproc:dataproc.scheduler.driver-size-mb.
A seguir
- Consulte Resolver problemas de tarefas.