Vida útil de um job do Cloud Dataproc

Esta página descreve a sequência de etapas envolvidas no envio, execução e conclusão de um job do Cloud Dataproc. Aqui você também encontra redução e depuração do job.

Fluxo de jobs do Cloud Dataproc

  1. O usuário envia o job ao Cloud Dataproc.
  2. O job aguarda a aquisição 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.
  3. Quando o job é adquirido pelo agente, este verifica se há recursos suficientes disponíveis no nó mestre do cluster do Cloud 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.
  4. Se houver recursos suficientes disponíveis, o agente dataproc iniciará o processo do driver do job.
    • Neste estágio, normalmente há um ou mais aplicativos em execução no Apache Hadoop YARN. No entanto, os aplicativos Yarn talvez não sejam iniciados até o driver terminar de verificar os diretórios do Cloud Storage ou realizar outras tarefas do job de inicialização.
  5. O agente dataproc envia periodicamente atualizações para o Cloud Dataproc sobre o andamento do job, as métricas do cluster e os aplicativos Yarn associados ao job. Consulte Monitoramento e depuração de jobs.
  6. Aplicativos Yarn 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).
  7. O driver sai. O agente dataproc relata a conclusão ao Cloud Dataproc.
    • O Cloud Dataproc relata o job como DONE.

Monitoramento e depuração de jobs

Use a ferramenta de linha de comando gcloud, a API REST do Cloud Dataproc e o Console do Google Cloud para analisar e depurar jobs do Cloud Dataproc.

Comando gcloud

Para examinar o status de um job em execução:

gcloud dataproc jobs describe job-id

Para ver a saída do driver do job, consulte Como acessar a saída do driver do job.

API REST

Chame jobs.get para examinar os campos JobStatus.State, JobStatus.Substate, JobStatus.details, e YarnApplication.

Console

Para ver a saída do driver do job, consulte Como acessar a saída do driver do job.

Para visualizar o registro do agente dataproc no Stackdriver Logging, selecione Cluster do Cloud Dataproc→Nome do cluster→UUID do cluster no seletor de clusters do visualizador de registros.

Em seguida, use o seletor para escolher registros google.dataproc.agent.

Visualizar registros de jobs no Stackdriver

Se um job falhar, você poderá acessar os registros do job no Stackdriver Logging.

Como determinar quem enviou um job

A pesquisa dos detalhes de um job mostrará quem enviou esse job no campo submittedBy. Por exemplo, a saída desse job mostra que user@domain enviou o job de exemplo para um cluster.

...
placement:
  clusterName: cluster-name
  clusterUuid: cluster-uuid
reference:
  jobId: job-uuid
  projectId: project
status:
  state: DONE
  stateStartTime: '2018-11-01T00:53:37.599Z'
statusHistory:
- state: PENDING
  stateStartTime: '2018-11-01T00:33:41.387Z'
- state: SETUP_DONE
  stateStartTime: '2018-11-01T00:33:41.765Z'
- details: Agent reported job success
  state: RUNNING
  stateStartTime: '2018-11-01T00:33:42.146Z'
submittedBy: user@domain