首页 > 解决方案 > 在 Cloud Logging 中查看 Dataproc 作业驱动程序日志

问题描述

我无法查询我的作业的 Dataproc 作业级日志,但可以使用集群级日志。

重现步骤:

  1. 使用基于 1.4 的自定义映像创建集群,按照此处所述设置集群属性。验证:
gcloud dataproc clusters describe --project <my-project> --region us-west1 <my-cluster> |grep file-backed-output

   dataproc:jobs.file-backed-output.enable: 'true'

gcloud dataproc clusters describe --project <my-project> --region us-west1 <my-cluster> |grep stackdrive

   dataproc:dataproc.logging.stackdriver.enable:“真”

   dataproc:dataproc.logging.stackdriver.job.driver.enable:“真”

  1. 在该集群上启动 Dataproc 作业,运行命令:
gcloud logging read resource.type=cloud_dataproc_job --project <my-project> //returns 0 rows
gcloud logging read resource.type=cloud_dataproc_job --project <my-project> resource.labels.region=us-west1 resource.labels.job_id=<my-job>
ERROR: (gcloud.logging.read) unrecognized arguments:
 resource.labels.region=us-west1
 resource.labels.job_id=<my-job>
 To search the help text of gcloud commands, run:
 gcloud help -- SEARCH_TERMS

当我查看集群主节点时,我可以看到/etc/google-fluentd/config.d/dataproc-job-driver.conf带有一行的文件path /var/log/google-dataproc-job/**/driver.log,并且预期的日志文件在该位置下可用。

标签: google-cloud-dataproc

解决方案


在运行日志记录命令之前您的工作完成了吗?

我无法使用项目范围读取命令重现该问题,但能够使用特定于作业的命令重现该问题。根据https://cloud.google.com/sdk/gcloud/reference/logging/read,参数都需要用引号引起来 - 所以你的命令应该看起来像:

gcloud logging read "resource.type=cloud_dataproc_job resource.labels.region=us-west1 resource.labels.job_id=<my-job>" --project=<my-project>

我将提交一个错误以确保文档正确以反映正确的引号。


推荐阅读