当我通过SSH连接到主节点(托管Spark驱动程序的计算机)时,我想获得命令行访问我的Spark应用程序生成的实时日志。我能够使用gcloud dataproc jobs wait
,Dataproc Web UI和GCS查看它们,但我希望能够通过命令行访问实时日志,以便我可以grep
等。通过它。
在哪里可以找到Spark在驱动程序上生成的日志(以及执行程序上的日志!)?
答案 0 :(得分:0)
目前,Dataproc实际上并没有将驱动程序输出的任何副本发送到本地磁盘而只是将其放入GCS中,部分原因是它不太适合标准的日志轮换策略或YARN任务日志清理,所以它需要额外的定义如何在本地磁盘上执行这些输出文件的垃圾收集,否则就有可能在更长寿的集群上慢慢耗尽磁盘空间。
也就是说,这样的删除策略肯定是可以克服的,因此我将继续将其添加为功能请求,以便将驱动程序输出发送到GCS和本地磁盘文件,以便更好地使用。
与此同时,你有几个选择:
cloud-platform
)时启用gcloud dataproc clusters create --scopes cloud-platform
范围,然后在群集上启用gcloud dataproc jobs wait <jobid> | grep foo
gsutil cat
;如果您可以先从其他位置gcloud dataproc jobs describe
找到driverOutputResourceUri
字段,则会指向GCS前缀(自您提到在GCS中找到它们以来,您可能已找到它)。由于输出部分以填充的数字前缀命名,gsutil cat gs://bucket/google-cloud-dataproc-metainfo/cluster-uuid/jobs/jobid/driveroutput*
将以正确的顺序打印出作业输出,然后您可以将其输出到您需要的任何内容。