【问题标题】:Can I run dataproc jobs in cluster mode我可以在集群模式下运行 dataproc 作业吗
【发布时间】:2018-09-15 15:41:09
【问题描述】:
刚开始熟悉 GCP dataproc。我注意到当我使用gcloud dataproc jobs submit pyspark 时,作业是使用spark.submit.deployMode=client 提交的。 spark.submit.deployMode=cluster 是我们的选择吗?
【问题讨论】:
标签:
google-cloud-dataproc
【解决方案1】:
是的,您可以通过指定--properties spark.submit.deployMode=cluster。请注意,驱动程序输出将在纱线用户日志中(您可以从控制台的 Stackdriver Logging 中访问它们)。默认情况下,我们以客户端模式运行,以将驱动程序输出流式传输给您。
【解决方案2】:
Found here 隐藏在 Google 的操作指南中:
默认情况下,Dataproc 在客户端模式下运行 Spark 作业,并流式传输驱动程序输出以供查看,如下所述。但是,如果用户通过将集群属性设置为 --properties 来创建 Dataproc 集群:spark:spark.submit.deployMode=cluster 或通过将作业属性设置为 --properties spark.submit.deployMode 以集群模式提交作业=cluster,驱动输出列在 YARN 用户日志中,可以在 Logging 中访问。
但是,使用集群模式部署和以集群模式提交作业之间的区别并不完全清楚。我必须运行一个实验,但我可能认为如果您以客户端模式启动集群,我会看到执行程序日志流式传输到控制台输出(与驱动程序日志一起收集)。如果您在集群模式下启动它,那么在作业控制台中只能查看驱动程序日志。如果您在集群模式下部署作业,则不会向作业控制台发送任何内容,您必须从 DataProc 将 YARN 容器日志转储到的任何位置获取日志(同样,必须配置的东西)