Esta página descreve a sequência de passos envolvidos no envio, execução e conclusão de uma tarefa do Dataproc. Também aborda a limitação de tarefas e a depuração.
Fluxo de tarefas do Dataproc
- O utilizador envia uma tarefa para o Dataproc.
- JobStatus.State
está marcado como
PENDING
.
- JobStatus.State
está marcado como
- A tarefa aguarda a aquisição pelo agente
dataproc
.- Se a tarefa for adquirida, JobStatus.State é marcada como
RUNNING
. - Se o trabalho não for adquirido devido a uma falha do agente, uma falha de rede do Compute Engine ou outra causa, o trabalho é marcado como
ERROR
.
- Se a tarefa for adquirida, JobStatus.State é marcada como
- Quando um agente adquire uma tarefa, este verifica se existem recursos suficientes disponíveis no nó principal do cluster do Dataproc para iniciar o controlador.
- Se não estiverem disponíveis recursos suficientes, a tarefa é atrasada (limitada).
JobStatus.Substate
mostra a tarefa como
QUEUED
e Job.JobStatus.details fornece informações sobre a causa do atraso.
- Se não estiverem disponíveis recursos suficientes, a tarefa é atrasada (limitada).
JobStatus.Substate
mostra a tarefa como
- Se estiverem disponíveis recursos suficientes, o agente
dataproc
inicia o processo do controlador de tarefas.- Nesta fase, normalmente, existem uma ou mais aplicações em execução no Apache Hadoop YARN. No entanto, as aplicações Yarn podem não ser iniciadas até que o controlador termine a análise dos diretórios do Cloud Storage ou a execução de outras tarefas de início.
- O agente
dataproc
envia periodicamente atualizações para o Dataproc sobre o progresso do trabalho, as métricas do cluster e as aplicações Yarn associadas ao trabalho (consulte Monitorização e depuração de trabalhos). - As candidaturas de Yarn estão concluídas.
- O trabalho continua a ser comunicado como
RUNNING
enquanto o motorista realiza tarefas de conclusão do trabalho, como a materialização de recolhas. - Uma falha não processada ou não detetada no tópico principal pode deixar o controlador num estado inativo (marcado como
RUNNING
sem informações sobre a causa da falha).
- O trabalho continua a ser comunicado como
- O condutor sai.
O agente
dataproc
comunica a conclusão ao Dataproc.- O Dataproc comunica a tarefa como
DONE
.
- O Dataproc comunica a tarefa como
Simultaneidade de tarefas
Pode configurar o número máximo de tarefas do Dataproc simultâneas com a propriedade do cluster dataproc:dataproc.scheduler.max-concurrent-jobs quando cria um cluster. Se o valor desta propriedade não for definido,
o limite superior de tarefas simultâneas é calculado como
max((masterMemoryMb - 3584) / masterMemoryMbPerJob, 5)
. masterMemoryMb
é determinado pelo tipo de máquina da VM principal. masterMemoryMbPerJob
é
1024
por predefinição, mas é configurável na criação do cluster com a propriedade do cluster
dataproc:dataproc.scheduler.driver-size-mb.
O que se segue
- Consulte o artigo Resolva problemas com trabalhos