Quando envia uma tarefa do Dataproc, o Dataproc recolhe automaticamente o resultado da tarefa e disponibiliza-o. Isto significa que pode rever rapidamente o resultado do trabalho sem ter de manter uma ligação ao cluster enquanto os seus trabalhos são executados ou analisar ficheiros de registo complicados.
Registos do Spark
Existem dois tipos de registos do Spark: registos do controlador do Spark e registos do executor do Spark.
Os registos do controlador do Spark contêm o resultado do trabalho; os registos do executor do Spark contêm o resultado do executável do trabalho ou do iniciador, como uma mensagem spark-submit
"Submitted application xxx" (Aplicação enviada xxx), e podem ser úteis para depurar falhas de trabalhos.
O controlador de tarefas do Dataproc, que é distinto do controlador do Spark, é um iniciador para muitos tipos de tarefas. Quando inicia tarefas do Spark, estas são executadas como um wrapper no executável spark-submit
subjacente, que inicia o controlador do Spark. O controlador do Spark executa a tarefa no cluster do Dataproc no modo Spark
client
ou cluster
:
client
: o controlador do Spark executa a tarefa no processospark-submit
e os registos do Spark são enviados para o controlador da tarefa do Dataproc.cluster
: o controlador do Spark executa a tarefa num contentor YARN. Os registos do controlador do Spark não estão disponíveis para o controlador de tarefas do Dataproc.
Vista geral das propriedades de tarefas do Dataproc e do Spark
Propriedade | Valor | Predefinição | Descrição |
---|---|---|---|
dataproc:dataproc.logging.stackdriver.job.driver.enable |
verdadeiro ou falso | falso | Tem de ser definido no momento da criação do cluster. Quando true ,
a saída do controlador de tarefas está no registo,
associada ao recurso de tarefa; quando false , a saída do controlador de tarefas
não está no registo.Nota: as seguintes definições de propriedades do cluster também são necessárias para ativar os registos do controlador de tarefas no registo e são definidas por predefinição quando é criado um cluster: 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 | Tem de ser definido no momento da criação do cluster.
Quando true , os registos do contentor YARN da tarefa estão associados
ao recurso da tarefa; quando false , os registos do contentor YARN da tarefa
estão associados ao recurso do cluster. |
spark:spark.submit.deployMode |
cliente ou cluster | cliente | Controla o modo client ou cluster do Spark. |
Tarefas do Spark enviadas através da API jobs
do Dataproc
As tabelas nesta secção indicam o efeito das diferentes definições de propriedades no destino do resultado do controlador de tarefas do Dataproc quando as tarefas são enviadas através da API jobs
do Dataproc, que inclui o envio de tarefas através daGoogle Cloud consola, da CLI gcloud e das bibliotecas de cliente da nuvem.
As propriedades do Dataproc e do Spark indicadas podem ser definidas com a flag --properties
quando um cluster é criado e aplicam-se a todas as tarefas do Spark executadas no cluster. As propriedades do Spark também podem ser definidas com a flag --properties
(sem o prefixo "spark:") quando uma tarefa é enviada para a API jobs
do Dataproc e aplicam-se apenas à tarefa.
Resultado do controlador de tarefas do Dataproc
As tabelas seguintes indicam o efeito das diferentes definições de propriedades no destino da saída do controlador da tarefa do Dataproc.
dataproc: |
Resultado |
---|---|
false (predefinição) |
|
verdadeiro |
|
Registos do controlador do Spark
As tabelas seguintes indicam o efeito das diferentes definições de propriedades no destino dos registos do controlador do Spark.
spark: |
dataproc: |
dataproc: |
Saída do controlador |
---|---|---|---|
cliente | false (predefinição) | verdadeiro ou falso |
|
cliente | verdadeiro | verdadeiro ou falso |
|
cluster | false (predefinição) | falso |
|
cluster | verdadeiro | verdadeiro |
|
Registos do executor do Spark
As tabelas seguintes indicam o efeito das diferentes definições de propriedades no destino dos registos do executor do Spark.
dataproc: |
Registo do executor |
---|---|
false (predefinição) | No Logging: yarn-userlogs abaixo do recurso de cluster |
verdadeiro | Em Registo dataproc.job.yarn.container no recurso de tarefa |
Tarefas do Spark enviadas sem usar a API jobs
do Dataproc
Esta secção indica o efeito das diferentes definições de propriedades no destino dos registos de tarefas do Spark quando as tarefas são enviadas sem usar a API Dataproc jobs
, por exemplo, quando envia uma tarefa diretamente num nó do cluster através de spark-submit
ou quando usa um bloco de notas do Jupyter ou Zeppelin. Estas tarefas não têm IDs de tarefas nem controladores do Dataproc.
Registos do controlador do Spark
As tabelas seguintes indicam o efeito das diferentes definições de propriedades no destino dos registos do controlador do Spark para tarefas não enviadas através da API jobs
do Dataproc.
spark: |
Saída do controlador |
---|---|
cliente |
|
cluster |
|
Registos do executor do Spark
Quando as tarefas do Spark não são enviadas através da API jobs
do Dataproc, os registos do executor
estão no Logging yarn-userlogs
no recurso do cluster.
Ver saída da tarefa
Pode aceder ao resultado da tarefa do Dataproc na Google Cloud consola, na CLI gcloud, no Cloud Storage ou no Logging.
Consola
Para ver o resultado da tarefa, aceda à secção Tarefas do Dataproc do seu projeto e, de seguida, clique no ID da tarefa para ver o resultado da tarefa.

Se a tarefa estiver em execução, o resultado da tarefa é atualizado periodicamente com novo conteúdo.
comando gcloud
Quando envia um trabalho com o comando
gcloud dataproc jobs submit, o resultado do trabalho é apresentado na consola. Pode "voltar a juntar" a saída mais tarde, num computador diferente ou numa nova janela, transmitindo o ID da tarefa para o comando gcloud dataproc jobs wait. O ID da tarefa é um GUID, como 5c1754a5-34f7-4553-b667-8a1199cb9cab
. Segue-se 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
O resultado do trabalho é armazenado no Cloud Storage no contentor de preparação ou no contentor que especificou quando criou o cluster. É fornecido um link para o resultado da tarefa no Cloud Storage no campo Job.driverOutputResourceUri devolvido por:
- um pedido de API jobs.get.
- um comando gcloud dataproc jobs describe job-id.
$ gcloud dataproc jobs describe spark-pi ... driverOutputResourceUri: gs://dataproc-nnn/jobs/spark-pi/driveroutput ...