Cloud Logging

Os registros de jobs e clusters do Dataproc podem ser visualizados, pesquisados, filtrados e arquivados no Cloud Logging.

Registros de jobs do Dataproc no Logging

Ao executar um job do Dataproc, a saída do driver do job é transmitida para o Console do Cloud, exibida na janela de terminal de comando (no caso de jobs enviados da linha de comando) e armazenada no Cloud Storage (consulte Como acessar a saída do driver do job). A seção explica como ativar o Dataproc para salvar também registros do driver do job no Logging.

Ativação de registros do driver do job no Cloud Logging

Para ativar os registros do driver do job no Logging, defina a seguinte propriedade de cluster ao criar o cluster:

dataproc:dataproc.logging.stackdriver.job.driver.enable=true

As seguintes propriedades de cluster também são obrigatórias e são definidas por padrão quando um cluster é criado:

dataproc:dataproc.logging.stackdriver.enable=true
dataproc:jobs.file-backed-output.enable=true

Ativação de registros de contêineres do YARN no Cloud Logging

Para ativar o recurso de jobs dos registros do contêiner do YARN, defina a seguinte propriedade do cluster ao criar o cluster:

dataproc:dataproc.logging.stackdriver.job.yarn.container.enable=true

A propriedade a seguir também é obrigatória e é definida por padrão quando um cluster é criado;

dataproc:dataproc.logging.stackdriver.enable=true

Como acessar registros de jobs no Cloud Logging

Você pode acessar o Logging usando o console do Logging, o comando gcloud logging ou a API do Logging.

Console

Os registros de contêiner do job e do YARN do Dataproc estão listados abaixo no recurso Job do Cloud Dataproc.

Exemplo de registro do driver do job:

Exemplo de registro do contêiner do YARN:

gcloud

Você pode ler as entradas de registro do job usando o comando gcloud logging read. O comando a seguir usa rótulos de cluster para filtrar as entradas de registro retornadas.

gcloud logging read \
    resource.type=cloud_dataproc_job \
    resource.labels.region=cluster-region \
    resource.labels.job_id=my-job-id

Exemplo de saída (parcial):

jsonPayload:
  class: org.apache.hadoop.hdfs.StateChange
  filename: hadoop-hdfs-namenode-test-dataproc-resize-cluster-20190410-38an-m-0.log
  ,,,
logName: projects/project-id/logs/hadoop-hdfs-namenode
---
jsonPayload:
  class: SecurityLogger.org.apache.hadoop.security.authorize.ServiceAuthorizationManager
  filename: cluster-name-dataproc-resize-cluster-20190410-38an-m-0.log
  ...
logName: projects/google.com:hadoop-cloud-dev/logs/hadoop-hdfs-namenode

API REST

É possível usar a API REST do Logging para listar entradas de registro (consulte entries.list).

Registros de cluster do Dataproc no Logging

O Dataproc exporta os seguintes registros de cluster do Apache Hadoop, Spark, Hive, Zookeeper e outros do Dataproc para o Cloud Logging.

Tipo de registro Nome do registro Descrição
Registros do daemon principal hadoop-hdfs
hadoop-hdfs-namenode
hadoop-hdfs-secondary namenode
hadoop-hdfs-zkfc
hive-metastore
hive-server2
mapred-mapred-historyserver
yarn-yarn-resourcemanager
yarn-yarn-timelineserver
zookeeper
Journal node
HDFS namenode
HDFS secondary namenode
Zookeeper failover controller
Hive metastore
Hive server2
Mapreduce job history server
YARN resource manager
YARN timeline server
Zookeeper server
Registros de daemon de worker hadoop-hdfs-datanode
yarn-yarn-nodemanager
HDFS datanode
YARN nodemanager
Registros do sistema autoscaler
google.dataproc.agent
google.dataproc.startup
Dataproc autoscaler log
Dataproc agent log
Dataproc startup script log + initialization action log

Como acessar registros de cluster no Cloud Logging

Você pode acessar o Logging usando o console do Logging, o comando gcloud logging ou a API do Logging.

Console

Os registros de cluster do Dataproc estão listados abaixo no recurso Cluster do Cloud Dataproc. Selecione um tipo de registro na lista suspensa.

gcloud

É possível ler entradas de registro do cluster usando o comando gcloud logging read. O comando a seguir usa rótulos de cluster para filtrar as entradas de registro retornadas.

gcloud logging read <<'EOF'
    resource.type=cloud_dataproc_cluster
    resource.labels.region=cluster-region
    resource.labels.cluster_name=cluster-name
    resource.labels.cluster_uuid=cluster-uuid
EOF

Exemplo de saída (parcial):

jsonPayload:
  class: org.apache.hadoop.yarn.server.resourcemanager.RMAuditLogger
  filename: yarn-yarn-resourcemanager-cluster-name-m.log
  ...
logName: projects/project-id/logs/yarn-yarn-resourcemanager
---
jsonPayload:
  class: org.apache.hadoop.yarn.server.resourcemanager.RMAuditLogger
  filename: yarn-yarn-resourcemanager-component-gateway-cluster-m.log
  ...
logName: projects/project-name/logs/yarn-yarn-resourcemanager

API REST

É possível usar a API REST do Logging para listar entradas de registro (consulte entries.list).

Permissões

Para gravar registros no Logging, a conta de serviço de VM do Dataproc precisa ter o papel logging.logWriter do IAM. A conta de serviço padrão do Dataproc tem esse papel. Se você usar uma conta de serviço personalizada, precisará atribuir esse papel à conta de serviço.

A seguir