Saída e registros do job

Quando você envia um job do Serviço Gerenciado para Apache Spark, o Serviço Gerenciado para Apache Spark coleta automaticamente a saída do job e a disponibiliza para você. Isso significa que é possível analisar rapidamente a saída do job sem a necessidade de manter uma conexão com o cluster enquanto os jobs são executados ou de conferir arquivos de registro complexos.

Registros do Spark

Há dois tipos de registros do Spark: registros do driver do Spark e registros do executor do Spark. Os registros do driver do Spark contêm a saída do job. Os registros do executor do Spark contêm a saída executável ou do inicializador do job, como uma mensagem spark-submit "Submitted application ... ", e podem ser úteis para depurar falhas de job.

O driver do job do Serviço Gerenciado para Apache Spark, que é diferente do driver do Spark, é um inicializador para muitos tipos de job. Ao iniciar jobs do Spark, ele é executado como um wrapper no executável spark-submit subjacente, que inicia o driver do Spark. O driver do Spark executa o job no cluster do Serviço Gerenciado para Apache Spark no modo Spark client ou cluster mode:

  • Modo client: o driver do Spark executa o job no processo spark-submit, e os registros do Spark são enviados ao driver do job do Serviço Gerenciado para Apache Spark.

  • Modo cluster: o driver do Spark executa o job em um contêiner do YARN. Os registros do driver do Spark não estão disponíveis para o driver do job do Serviço Gerenciado para Apache Spark.

Visão geral das propriedades do Serviço Gerenciado para Apache Spark e do job do Spark

Propriedade Valor Padrão Descrição
dataproc:dataproc.logging.stackdriver.job.driver.enable verdadeiro ou falso falso Precisa ser definido no momento da criação do cluster. Quando true, a saída do driver do job está no Logging, associada ao recurso do job. Quando false, a saída do driver do job não está no Logging.
Observação: as seguintes configurações de propriedade do cluster também são necessárias para ativar os registros do driver do job no Logging e são definidas por padrão quando um cluster é criado: dataproc:dataproc.logging.stackdriver.enable=true e dataproc:jobs.file-backed-output.enable=true
dataproc:dataproc.logging.stackdriver.job.yarn.container.enable verdadeiro ou falso falso Precisa ser definido no momento da criação do cluster. Quando true, os registros do contêiner do YARN do job são associados ao recurso do job. Quando false, os registros do contêiner do YARN do job são associados ao recurso do cluster.
spark:spark.submit.deployMode cliente ou cluster cliente Controla o modo client ou cluster do Spark.

Jobs do Spark enviados usando a API jobs do Serviço Gerenciado para Apache Spark

As tabelas nesta seção listam o efeito de diferentes configurações de propriedade no destino da saída do driver do job do Serviço Gerenciado para Apache Spark quando os jobs são enviados pela API jobs do Serviço Gerenciado para Apache Spark, que inclui o envio de jobs pelo Google Cloud console, pela CLI gcloud e pelas bibliotecas de cliente do Cloud.

As propriedades listadas do Serviço Gerenciado para Apache Spark e do Spark podem ser definidas com a flag --properties quando um cluster é criado e serão aplicadas a todos os jobs do Spark executados no cluster. As propriedades do Spark também podem ser definidas com a flag --properties (sem o prefixo "spark:") quando um job é enviado à API jobs do Serviço Gerenciado para Apache Spark e serão aplicadas apenas ao job.

Saída do driver do job do Serviço Gerenciado para Apache Spark

As tabelas a seguir listam o efeito de diferentes configurações de propriedade no destino da saída do driver do job do Serviço Gerenciado para Apache Spark.

dataproc:
dataproc.logging.stackdriver.job.driver.enable
Saída
false (padrão)
  • Transmitido ao cliente
  • No Cloud Storage no gerado pelo Serviço Gerenciado para Apache Spark driverOutputResourceUri
  • Não no Logging
verdadeiro
  • Transmitido ao cliente
  • No Cloud Storage no gerado pelo Serviço Gerenciado para Apache Spark driverOutputResourceUri
  • No Logging: dataproc.job.driver no recurso do job.

Registros do driver do Spark

As tabelas a seguir listam o efeito de diferentes configurações de propriedade no destino dos registros do driver do Spark.

spark:
spark.submit.deployMode
dataproc:
dataproc.logging.stackdriver.job.driver.enable
dataproc:
dataproc.logging.stackdriver.job.yarn.container.enable
Saída do driver
cliente false (padrão) verdadeiro ou falso
  • Transmitido ao cliente
  • No Cloud Storage no gerado pelo Serviço Gerenciado para Apache Spark driverOutputResourceUri
  • Não no Logging
cliente verdadeiro verdadeiro ou falso
  • Transmitido ao cliente
  • No Cloud Storage no gerado pelo Serviço Gerenciado para Apache Spark driverOutputResourceUri
  • No Logging: dataproc.job.driver no recurso do job
cluster false (padrão) falso
  • Não transmitido ao cliente
  • Não no Cloud Storage
  • No Logging yarn-userlogs no recurso do cluster
cluster verdadeiro verdadeiro
  • Não transmitido ao cliente
  • Não no Cloud Storage
  • No Logging: dataproc.job.yarn.container no recurso do job

Registros do executor do Spark

As tabelas a seguir listam o efeito de diferentes configurações de propriedade no destino dos registros do executor do Spark.

dataproc:
dataproc.logging.stackdriver.job.yarn.container.enable
Registro do executor
false (padrão) No Logging: yarn-userlogs no recurso do cluster
verdadeiro No Logging dataproc.job.yarn.container no recurso do job

Jobs do Spark enviados sem usar a API jobs do Serviço Gerenciado para Apache Spark

Esta seção lista o efeito de diferentes configurações de propriedade no destino dos registros de job do Spark quando os jobs são enviados sem usar a API jobs do Serviço Gerenciado para Apache Spark, por exemplo, ao enviar um job diretamente em um nó de cluster usando spark-submit ou ao usar um notebook Jupyter ou Zeppelin. Esses jobs não têm IDs ou drivers do Serviço Gerenciado para Apache Spark.

Registros do driver do Spark

As tabelas a seguir listam o efeito de diferentes configurações de propriedade no destino dos registros do driver do Spark para jobs não enviados pela API jobs do Serviço Gerenciado para Apache Spark.

spark:
spark.submit.deployMode
Saída do driver
cliente
  • Transmitido ao cliente
  • Não no Cloud Storage
  • Não no Logging
cluster
  • Não transmitido ao cliente
  • Não no Cloud Storage
  • No Logging yarn-userlogs no recurso do cluster

Registros do executor do Spark

Quando os jobs do Spark não são enviados pela API jobs do Serviço Gerenciado para Apache Spark, os registros do executor estão no Logging yarn-userlogs no recurso do cluster.

Conferir a saída do job

É possível acessar a saída do job do Serviço Gerenciado para Apache Spark no Google Cloud console, na CLI gcloud, no Cloud Storage ou no Logging.

Console

Para conferir a saída da tarefa, acesse a seção Jobs do Serviço Gerenciado para Apache Spark do projeto e clique no código da tarefa.

Se o job estiver em execução, a saída será atualizada periodicamente com novo conteúdo.

Comando gcloud

Quando um job é enviado com o gcloud dataproc jobs submit comando, a saída do job é exibida no console. É possível "reunir" a saída mais tarde, em um computador diferente ou em uma nova janela, transmitindo o ID do job para o comando gcloud dataproc jobs wait. O código da tarefa é um GUID, como 5c1754a5-34f7-4553-b667-8a1199cb9cab. Aqui está um exemplo:

gcloud dataproc jobs wait 5c1754a5-34f7-4553-b667-8a1199cb9cab \
    --project my-project-id --region my-cluster-region
Waiting for job output...
... INFO gcs.GoogleHadoopFileSystemBase: GHFS version: 1.4.2-hadoop2
... 16:47:45 INFO client.RMProxy: Connecting to ResourceManager at my-test-cluster-m/
...

Cloud Storage

A saída do job é armazenada no Cloud Storage em no bucket de preparação ou no bucket especificado quando você criou o cluster. Um link para a saída do job no Cloud Storage é fornecido no Job.driverOutputResourceUri retornado por:

Logging

Consulte Registros do Serviço Gerenciado para Apache Spark para informações sobre como visualizar a saída do job do Serviço Gerenciado para Apache Spark no Logging.