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

Running submitted job sequentially in Google Cloud Dataproc

我创建了 Google Dataproc 集群,其中有 2 个工作线程,使用 n1-standard-4 个虚拟机作为主机和工作线程。

我想在给定的集群上提交作业,所有作业都应该 运行 按顺序(就像在 AWS EMR 上一样),即,如果第一个作业处于 运行ning 状态,那么接下来的作业将转到挂起状态,完成第一份工作后,第二份工作开始 运行ning.

我尝试在集群上提交作业,但是 运行 所有作业都是并行的 - 没有作业进入挂起状态。

我是否可以在 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 主节点上的上述更改。但仍然并行工作 运行ning。

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

要实现顺序执行,您可能需要使用一些编排解决方案,Dataproc Workflows or Cloud Composer

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