Registros do Managed Service for Apache Spark

Os registros de jobs e clusters do Serviço Gerenciado para Apache Spark podem ser visualizados, pesquisados, filtrados e arquivados no Cloud Logging.

Níveis de registro de componentes

Defina os níveis de geração de registros do Spark, Hadoop, Flink e outros componentes do Serviço Gerenciado para Apache Spark 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 a jobs executados no cluster.

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

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

Níveis de registro da versão do componente do Spark e do Hive:

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

Níveis de registro do driver de jobs

O Serviço Gerenciado para Apache Spark usa um nível de geração de registros padrão de INFO para programas de driver de jobs. É possível alterar essa configuração para um ou mais pacotes com a sinalização --driver-log-levels do gcloud dataproc jobs submit.

Exemplo:

Defina o nível de registro DEBUG ao enviar um job do Spark que lê arquivos do 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 do logger root como WARN e o nível do 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 registro do executor do Spark:

  1. Prepare um arquivo de configuração log4j e faça upload dele no 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 o diretório de trabalho local do job, referenciado como file:<name> em -Dlog4j.configuration.

Registros de jobs do Serviço Gerenciado para Apache Spark no Logging

Consulte Saída e registros de jobs do Serviço Gerenciado para Apache Spark para saber como ativar os registros de driver de jobs do Serviço Gerenciado para Apache Spark na geração de registros.

Acessar os registros de jobs no Logging

Acesse os registros de jobs do Serviço Gerenciado para Apache Spark usando a Análise de registros, o comando gcloud logging ou a API Logging.

Console

Os registros do driver de job do Serviço Gerenciado para Apache Spark e do contêiner do YARN estão listados no recurso Job do Serviço Gerenciado para Apache Spark do Cloud.

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

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

Exemplo: registro de contêiner do YARN após a execução de uma consulta da Análise de registros 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 Serviço Gerenciado para Apache Spark no Logging

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

Tipo de registro Nome do registro Descrição Observações
Registros do daemon principal hadoop-hdfs
hadoop-hdfs-namenode
hadoop-hdfs-secondarynamenode
hadoop-hdfs-zkfc
hadoop-yarn-resourcemanager
hadoop-yarn-timelineserver
hive-metastore
hive-server2
hadoop-mapred-historyserver
zookeeper
Nó de diário
Namenode do HDFS
Namenode secundário do HDFS
Controlador de failover do Zookeeper
Gerenciador de recursos do YARN
Servidor de linha do tempo do YARN
Metastore do Hive
Hive server2
Servidor de histórico de jobs do Mapreduce
Servidor do Zookeeper
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
Registro do escalonador automático do Serviço Gerenciado para Apache Spark
Registro agêntico do Serviço Gerenciado para Apache Spark
Registro do script de inicialização do Serviço Gerenciado para Apache Spark + registro da ação de inicialização
Registros estendidos (adicionais) knox
gateway-audit
zeppelin
ranger-usersync
jupyter_notebook
jupyter_kernel_gateway
spark-history-server
Todos os registros dentro dos subdiretórios /var/log/ que correspondem a:
knox (inclui gateway-audit.log)
zeppelin
ranger-usersync
jupyter_notebook
jupyter_kernel_gateway
spark-history-server
Definir a propriedade dataproc:dataproc.logging.extended.enabled=false desativa a coleta de registros estendidos no cluster
Syslogs da VM syslog
Syslogs dos nós mestre e de trabalho do cluster
Definir a propriedade dataproc:dataproc.logging.syslog.enabled=false desativa a coleta de syslogs de VM no cluster

Acessar registros de cluster no Cloud Logging

É possível acessar os registros de cluster do Serviço Gerenciado para Apache Spark usando o Análise de registros, o comando gcloud logging ou a API Logging.

Console

Faça as seguintes seleções de consulta para ver os registros do cluster 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 na geração de registros, a conta de serviço da VM do Serviço Gerenciado para Apache Spark precisa ter o papel do IAM logging.logWriter. A conta de serviço padrão do Serviço Gerenciado para Apache Spark 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) para criptografar os registros. Para mais informações sobre o suporte a CMEK, consulte 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