How to view spark executor logs in Dataproc

Nick 进达2022-07-18big_dataBigData

在 Dataproc 部署了 Spark 集群后,我们可以通过 gcloud 命令来 submit spark job,gcloud 会以流式的方式返回 spark driver logs,那要如何看到 executor 的 logs 呢?

gcloud dataproc jobs submit job-command \
    --cluster=cluster-name \
    --region=region \
    other dataproc-flags \
    -- job-args

一开始我想着是进入 Dataproc 集群的 Spark History Server 上进行查看,但是也不太方便,其实有个更简单的办法,在集群的顶部菜单中,右上角有一个查看日志的入口

img.png

点击进去后,我们可以看到很多服务的日志,Google 已经把这些日志都集成好了。页面跳转后,会默认执行以下查询

resource.type="cloud_dataproc_cluster"
resource.labels.cluster_name="xxxx"
resource.labels.cluster_uuid="ffe84392-4012-4a4a-ac81-c3e513a9cdf0"

界面

img.png

该查询的作用是把 cloud_dataproc_cluster 服务的 xxxx cluster 集群的日志查询出来,我们再进一步过滤

查询 dataproc 文档open in new window 可以知道,executor 的 logs 存储位于 yarn-userlogs

img.png

所以我们在日志查询系统里再补充 log_name 过滤条件

resource.type="cloud_dataproc_cluster"
resource.labels.cluster_name="xxxx"
resource.labels.cluster_uuid="ffe84392-4012-4a4a-ac81-c3e513a9cdf0"
log_name="projects/xxxproject/logs/yarn-userlogs"

这样就要可以看到所有 job 的 executor logs 了。

我们也可以继续做过滤,例如过滤单个 job 的 logs,通过 application name 过滤.

note: application 在 gloud submit job 后会打印在命令行中

resource.type="cloud_dataproc_cluster"
resource.labels.cluster_name="internal-16-60-07-19"
resource.labels.cluster_uuid="ffe84392-4012-4a4a-ac81-c3e513a9cdf0"
log_name="projects/xxxproject/logs/yarn-userlogs"
jsonPayload.application="application_1658199041103_0098"
Last Updated 10/14/2025, 7:43:32 AM