我使用n1-standard-4
个用于主服务器和工作器的VM创建了由2个工作器组成的Google Dataproc集群。
我想提交给定集群上的作业,并且所有作业应按顺序运行(例如在AWS EMR上),即,如果第一个作业处于运行状态,则即将完成的作业将进入待处理状态,在完成第一个作业之后,第二个作业开始运行。
我尝试在集群上提交作业,但是它并行运行所有作业-没有作业进入待处理状态。
我可以在Dataproc集群中设置任何配置,以便所有作业将顺序运行吗?
更新了以下文件:
/etc/hadoop/conf/yarn-site.xml
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>
<property>
<name>yarn.scheduler.fair.user-as-default-queue</name>
<value>false</value>
</property>
<property>
<name>yarn.scheduler.fair.allocation.file</name>
<value>/etc/hadoop/conf/fair-scheduler.xml</value>
</property>
/etc/hadoop/conf/fair-scheduler.xml
<?xml version="1.0" encoding="UTF-8"?>
<allocations>
<queueMaxAppsDefault>1</queueMaxAppsDefault>
</allocations>
之后,使用此命令systemctl restart hadoop-yarn-resourcemanager
重新启动服务,以上更改在主节点上进行。但是仍然可以并行运行。
答案 0 :(得分:2)
如果资源可用,Dataproc尝试并行执行提交的作业。
要实现顺序执行,您可能需要使用编排解决方案Dataproc Workflows或Cloud Composer。
或者,您可能想在Dataproc上configure YARN Fair Scheduler并将queueMaxAppsDefault
属性设置为1。