在Google Cloud Dataproc中按顺序运行提交的作业

时间:2018-12-19 11:07:11

标签: hadoop yarn google-cloud-dataproc

我使用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重新启动服务,以上更改在主节点上进行。但是仍然可以并行运行。

1 个答案:

答案 0 :(得分:2)

如果资源可用,Dataproc尝试并行执行提交的作业。

要实现顺序执行,您可能需要使用编排解决方案Dataproc WorkflowsCloud Composer

或者,您可能想在Dataproc上configure YARN Fair Scheduler并将queueMaxAppsDefault属性设置为1。