我如何 运行 在 Google Dataproc 上执行两个并行作业

How can I run two parallel jobs on Google Dataproc

我有一份工作需要很长时间才能在 DataProc 上 运行。与此同时,我需要能够 运行 其他较小的工作。

根据我从 Google Dataproc 文档中收集到的信息,该平台应该支持多个作业,因为它使用 YARN 动态分配资源。

但是,当我尝试启动多个作业时,它们会排队,直到集群空闲时,一个作业才会启动。

所有设置均为默认设置。如何同时启用多个作业 运行ning?

Dataproc 确实支持多个并发作业。但是,它承载多个作业的能力取决于 Yarn 是否具有承载 Application Master(或作业将排队)或实际工作人员(或作业将花费很长时间)的可用容量。

您的大型作业将请求的容器数量取决于分区数量。在默认设置下,一个 Dataproc worker 将支持 2 个 Mapper 或 Reducer 任务。如果您正在处理 100 个文件并且每个文件都是一个分区,那么您的整个集群容量现在已分配完毕。

您可以做几件事:

  • 运行 单独集群上的较小作业。您理想的集群配置是一个作业占据整个集群,或者 N 个作业平均共享集群

  • 向您当前的集群添加额外的 worker and/or 尝试使用可抢占的 worker(您可以使用 clusters update 命令调整大小,see

  • (高级)尝试使用不同的 Yarn 调度器(see 用于带队列的公平调度器)