You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过REST API获取Dataproc作业的输出驱动日志与控制台日志

如何通过REST API获取Dataproc作业日志并标记含特定关键词的作业

方案概述

Dataproc的驱动日志和控制台日志默认同步到Cloud Logging,直接使用Cloud Logging REST API是最优实现路径,以下是具体操作步骤:

1. 获取目标作业基础信息

先调用Dataproc作业详情接口,拿到作业ID等核心标识,为后续日志筛选做准备:

GET https://dataproc.googleapis.com/v1/projects/{PROJECT_ID}/regions/{REGION}/jobs/{JOB_ID}

返回结果中的driverOutputResourceUri和driverLogUri可辅助确认日志存储路径,但直接通过Cloud Logging API查询效率更高。

2. 用Cloud Logging API精准查询作业日志

针对Dataproc的两类日志,使用特定过滤器规则调用entries.list接口:

日志过滤器规则

  • 驱动日志:resource.type="cloud_dataproc_job" AND resource.labels.job_id="{JOB_ID}" AND logName="projects/{PROJECT_ID}/logs/dataproc.driver"
  • 控制台日志:resource.type="cloud_dataproc_job" AND resource.labels.job_id="{JOB_ID}" AND logName="projects/{PROJECT_ID}/logs/dataproc.console"

请求示例

POST https://logging.googleapis.com/v2/entries:list
Content-Type: application/json

{
  "projectIds": ["{PROJECT_ID}"],
  "filter": "resource.type=\"cloud_dataproc_job\" AND resource.labels.job_id=\"{JOB_ID}\" AND (logName=\"projects/{PROJECT_ID}/logs/dataproc.driver\" OR logName=\"projects/{PROJECT_ID}/logs/dataproc.console\")",
  "orderBy": "timestamp desc"
}

3. 搜索关键词并标记作业

  1. 遍历接口返回的entries数组,每个条目的textPayload字段即为日志内容
  2. 检查textPayload中是否包含目标关键词
  3. 若匹配成功,调用Dataproc作业更新接口添加自定义标签完成标记:
PATCH https://dataproc.googleapis.com/v1/projects/{PROJECT_ID}/regions/{REGION}/jobs/{JOB_ID}
Content-Type: application/json

{
  "labels": {
    "keyword_detected": "true"
  }
}

关键注意事项

  • 操作账号需拥有roles/dataproc.editor(用于作业查询与标记)和roles/logging.viewer(用于日志读取)权限
  • 批量处理作业时,可先调用projects.regions.jobs.list获取全量作业列表,再批量执行日志查询与检查
  • 日志量较大时,使用pageSize和pageToken参数分页查询,避免请求超时

内容的提问来源于stack exchange,提问作者Help_me_a_bit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 22:05:25