Cloud Logging

您可以在 Cloud Logging 中查看、搜索、过滤和归档 Dataproc 作业和集群日志。

Logging 中的 Dataproc 作业日志

当您运行 Dataproc 作业时,作业驱动程序输出会流式传输到 Cloud Console,显示在命令终端窗口中(对于通过命令行提交的作业),并存储在 Cloud Storage 中(请参阅访问作业驱动程序输出)。该部分介绍了如何启用 Dataproc 以同时允许作业驱动程序日志保存在 Logging 中。

在 Cloud Logging 中启用作业驱动程序日志

如需在 Logging 中启用作业驱动程序日志,请在创建集群时设置以下集群属性

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

以下集群属性也是必需属性,而且会在创建集群时默认设置:

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

在 Cloud Logging 中启用 YARN 容器日志

如需启用 YARN 容器日志的作业资源,请在创建集群时设置以下集群属性

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

以下属性也是必需属性,而且会在创建集群时默认设置:

dataproc:dataproc.logging.stackdriver.enable=true

访问 Cloud Logging 中的作业日志

您可以使用 Logging 控制台gcloud logging 命令或 Logging API 来访问 Logging。

控制台

Dataproc 作业驱动程序日志和 YARN 容器日志列在 Cloud Dataproc 作业资源下。

作业驱动程序日志示例:

YARN 容器日志示例:

gcloud

您可以使用 gcloud logging read 命令来读取作业日志条目。以下命令使用集群标签来过滤返回的日志条目。

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

示例输出(部分):

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

REST API

您可以使用 Logging REST API 列出日志条目(请参阅 entries.list)。

Logging 中的 Dataproc 集群日志

Dataproc 会将以下 Apache Hadoop、Spark、Hive、Zookeeper 和其他 Dataproc 集群日志导出到 Cloud Logging。

日志类型 日志名称 说明
主守护进程日志 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
日志节点
HDFS 名称节点
HDFS 辅助名称节点
Zookeeper 故障转移控制器
Hive Metastore
Hive server2
Mapreduce 作业历史记录服务器
YARN 资源管理器
YARN Timeline Server
Zookeeper 服务器
工作器守护进程日志 hadoop-hdfs-datanode
yarn-yarn-nodemanager
HDFS 数据节点
YARN 节点管理器
系统日志 autoscaler
google.dataproc.agent
google.dataproc.startup
Dataproc 自动调节程序日志
Dataproc 代理日志
Dataproc 启动脚本日志 + 初始化操作日志

访问 Cloud Logging 中的集群日志

您可以使用 Logging 控制台gcloud logging 命令或 Logging API 来访问 Logging。

控制台

Dataproc 集群日志列在 Cloud Dataproc 集群资源下。从下拉列表中选择日志类型。

gcloud

您可以使用 gcloud logging read 命令来读取集群日志条目。以下命令使用集群标签来过滤返回的日志条目。

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

示例输出(部分):

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

REST API

您可以使用 Logging REST API 列出日志条目(请参阅 entries.list)。

权限

要将日志写入 Logging,Dataproc 虚拟机服务帐号必须具有 logging.logWriter 角色 IAM 角色。默认 Dataproc 服务帐号具有此角色。如果使用自定义服务帐号,则您必须将此角色分配给该服务帐号。

后续步骤