Registros do Dataproc

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

Níveis de geração de registros do componente

Defina os níveis de registro do Spark, Hadoop, Flink e outros componentes do Dataproc com propriedades de cluster do Log4j específicas do componente, como hadoop-log4j, ao criar um cluster. Os níveis de geração de registros de componentes baseados em cluster se aplicam a daemons de serviço, como o YARN ResourceManager, e aos jobs executados no cluster.

Se as propriedades log4j não forem compatíveis com um componente, como o Presto, gravar uma ação de inicialização que edita o arquivo log4j.properties ou log4j2.properties do componente.

Níveis de registro de componentes específicos do job: também é possível definir níveis de registro de componentes ao enviar um job. Esses os níveis de geração de registros são aplicados ao job e têm precedência acima dos níveis de geração de registros definidos na criação do cluster. Consulte Propriedades do cluster e do job para mais informações.

Níveis de geração de registros das versões dos componentes Spark e Hive:

Os componentes do Spark 3.3.X e do Hive 3.X usam propriedades do Log4j2, enquanto as versões anteriores desses componentes usam propriedades do Log4j. Consulte Apache Log4j2. Use um prefixo spark-log4j: para definir os níveis de geração de registros do Spark em um cluster.

  • Exemplo: imagem do Dataproc versão 2.0 com Spark 3.1 para definir log4j.logger.org.apache.spark:

    gcloud dataproc clusters create ... \
        --properties spark-log4j:log4j.logger.org.apache.spark=DEBUG
    
  • Exemplo: versão 2.1 da imagem do Dataproc com o Spark 3.3 para definir logger.sparkRoot.level:

    gcloud dataproc clusters create ...\
        --properties spark-log4j:logger.sparkRoot.level=debug
    

Níveis de registro do driver do job

O Dataproc usa um modelo nível de geração de registros de INFO para programas de driver de jobs. É possível mudar essa configuração para um ou mais pacotes com a flag --driver-log-levels do gcloud dataproc jobs submit.

Exemplo:

Defina o nível de geração de registros DEBUG ao enviar um job do Spark que leia do Google Cloud Storage.

gcloud dataproc jobs submit spark ...\
    --driver-log-levels org.apache.spark=DEBUG,com.google.cloud.hadoop.gcsio=DEBUG

Exemplo:

Defina o nível de logger root como WARN e o nível de logger com.example como INFO.

gcloud dataproc jobs submit hadoop ...\
    --driver-log-levels root=WARN,com.example=INFO

Níveis de registro do executor do Spark

Para configurar os níveis de geração de registros do executor do Spark:

  1. Preparar um arquivo de configuração log4j e fazer upload dele para o Cloud Storage

    .

  2. Faça referência ao arquivo de configuração ao enviar o job.

    Exemplo:

    gcloud dataproc jobs submit spark ...\
        --file gs://my-bucket/path/spark-log4j.properties \
        --properties spark.executor.extraJavaOptions=-Dlog4j.configuration=file:spark-log4j.properties
    

O Spark faz o download do arquivo de propriedades do Cloud Storage para diretório de trabalho local, referenciado como file:<name> em -Dlog4j.configuration.

Registros de jobs do Dataproc no Logging

Consulte Registros e saída de jobs do Dataproc para informações sobre como ativar registros de driver de job do Dataproc no Logging.

Acessar os registros de jobs no Logging

Acesse os registros de jobs do Dataproc usando o Análise de registros, o comando gcloud logging ou a API Logging.

Console

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

Exemplo: registro do driver do job depois de executar consulta da Análise de registros com as seguintes seleções:

  • Recurso:Cloud Dataproc Job
  • Nome do registro: dataproc.job.driver

Exemplo: registro do contêiner do YARN após a execução de uma consulta do Logs Explorer com as seguintes seleções:

  • Recurso:Cloud Dataproc Job
  • Nome do registro: dataproc.job.yarn.container

gcloud

Você pode ler as entradas de registro do job usando o comando gcloud logging read. Os argumentos de recursos precisam estar entre aspas ("..."). 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
hadoop-yarn-resourcemanager
hadoop-yarn-timelineserver
hive-metastore
hive-server2
mapred-mapred-historyserver
zookeeper
Journal node
HDFS namenode
HDFS secondary namenode
Zookeeper failover controller
YARN resource manager
YARN timeline server
Hive metastore
Hive server2
Mapreduce job history server
Zookeeper server
Registros de daemon de worker hadoop-hdfs-datanode
hadoop-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

Acessar registros de cluster no Cloud Logging

É possível acessar os registros do cluster do Dataproc usando o Explorador de registros, o comando gcloud logging ou a API Logging.

Console

Faça as seguintes seleções de consulta para visualizar na Análise de registros:

  • Recurso:Cloud Dataproc Cluster
  • Nome do registro: log name

gcloud

É possível ler entradas de registro do cluster usando o comando gcloud logging read. Os argumentos de recursos precisam estar entre aspas ("..."). 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.ResourceTrackerService
  filename: hadoop-yarn-resourcemanager-cluster-name-m.log
  ...
logName: projects/project-id/logs/hadoop-yarn-resourcemanager
---
jsonPayload:
  class: org.apache.hadoop.yarn.server.resourcemanager.ResourceTrackerService
  filename: hadoop-yarn-resourcemanager-component-gateway-cluster-m.log
  ...
logName: projects/project-id/logs/hadoop-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.

Como proteger os registros

Por padrão, os registros no Logging são criptografados em repouso. É possível ativar as chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) para criptografar os registros. Para mais informações sobre o suporte a CMEK, acesse Gerenciar as chaves que protegem os dados do roteador de registros e Gerenciar as chaves que protegem os dados de armazenamento do Logging.

A seguir