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

fbe*_*iga 6 google-cloud-platform google-cloud-dataproc

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

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

但是,当我尝试启动多个作业时,它们会排队,并且在群集空闲之前不会启动.

默认情况下,所有设置.如何启用同时运行的多个作业?

tix*_*tix 6

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

较大作业将请求的容器数取决于分区数.使用默认设置,Dataproc工作人员将支持2个Mapper或Reducer任务.如果您正在处理100个文件,并且每个文件都是分区,则现在已分配整个群集容量.

你可以做一些事情:

  • 在单独的群集上运行较小的作业.理想的群集配置是一个作业占用整个群集,或N个作业均匀共享群集

  • 将额外的工作人员添加到当前群集和/或尝试使用可抢占的工作人员(您可以使用clusters update命令调整大小[2])

  • (高级)使用不同的Yarn调度程序进行实验(有关队列的Fair调度程序,请参阅[1])

[1] https://blog.cloudera.com/blog/2016/06/untangling-apache-hadoop-yarn-part-4-fair-scheduler-queue-basics/

[2] https://cloud.google.com/sdk/gcloud/reference/dataproc/clusters/update