我使用n1-standard-4
虚拟机为主人和工人创建了带有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
上面对主节点的更改。但仍然是并行工作。
如果资源可用,Dataproc会尝试并行执行提交的作业。
要实现顺序执行,您可能需要使用一些编排解决方案,Dataproc Workflows或Cloud Composer。
或者,您可能希望在Dataproc上使用configure YARN Fair Scheduler并将queueMaxAppsDefault
属性设置为1。