google-cloud-dataproc - 在 Cloud Logging 中查看 Dataproc 作业驱动程序日志
问题描述
我无法查询我的作业的 Dataproc 作业级日志,但可以使用集群级日志。
重现步骤:
- 使用基于 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:“真”
- 在该集群上启动 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
,并且预期的日志文件在该位置下可用。
解决方案
在运行日志记录命令之前您的工作完成了吗?
我无法使用项目范围读取命令重现该问题,但能够使用特定于作业的命令重现该问题。根据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>
我将提交一个错误以确保文档正确以反映正确的引号。
推荐阅读
- c - 通过函数参数返回 const char *
- c# - 以编程方式在 C# winforms 中自动向下滚动 Web 浏览器
- php - 使用 cron 检索 html 格式的电子邮件
- vue.js - 带有 VueRouter 的 Vue.js - 如何在用户刷新时正确路由
- google-colaboratory - Google Colaboratory 中的“游乐场模式”是什么?
- crystal-reports - Crystal Reports 2016 两个组的总和字段
- javascript - 如何在计时器上更改背景图像
- microsoft-teams - 使用 URI 方案与多个联系人启动 Teams 聊天
- jquery - 如何将jQuery roundslider 值存储在变量中
- java - Hibernate、@JoinTable 和 JoinColumns 进行不包含非空值的插入