关于yarn:Hadoop(EMR)Cluster Fair Scheduler正在完成FIFO而不是并行执行

Hadoop (EMR) Cluster Fair Scheduler is completing FIFO instead of in Parallel

这是我第一次尝试配置YARN调度程序,但无法正常运行。该群集最初用作FIFO,而我正在尝试使作业并行运行。我已经添加到yarn-site.xml

的顶部

1
2
3
4
5
6
7
8
9
10
  <property>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
  </property>


  <property>
    <name>yarn.scheduler.fair.allocation.file</name>
    <value>/etc/hadoop/conf.empty/fair-scheduler.xml</value>  
  </property>

然后添加文件/etc/hadoop/conf.empty/fair-scheduler.xml:

1
2
3
4
5
6
7
8
9
10
11
12
    <queue name="root">
        <weight>1.0</weight>
        <schedulingPolicy>fair</schedulingPolicy>
         </aclSubmitApps>
        *</aclAdministerApps>
    </queue>
    <defaultQueueSchedulingPolicy>fair</defaultQueueSchedulingPolicy>
    <queuePlacementPolicy>
        <rule name="specified" create="true"/>
        <rule name="user" create="true"/>
    </queuePlacementPolicy>
</allocations>

因此,在此之后,我停止并启动了Yarn资源管理器,并在YARN Application控制台上看到了Fair Scheduler!但是,当尝试在集群上运行多个作业时,AWS EMR控制台仅显示一个正在运行的作业,另外两个正在等待处理。此外,YARN控制台仅显示队列root.hadoop中正在运行的一个作业,而看不到其他作业(该作业完成后将运行)。

那我怎样才能使这些作业并行运行?


实际上,可以通过yarn-site.xml设置调度程序。如果您拉起YARN资源管理器,则调度程序实际上将显示更改,但是问题出在提交AWS EMR步骤时。 EMR步骤本质上是按顺序运行的,这意味着在上一步完成之前,AWS不会将下一个作业提交给YARN。因此,必须将工作直接提交给Yarn才能看到好处。但是,EMR步骤似乎最近已改变。如果使用EMR 5.28.0版,则AWS EMR现在支持并行步骤执行:https://aws.amazon.com/about-aws/whats-new/2019/11/amazon-emr-now-allows-you-to-run多个步骤并行取消运行步骤,并与aws步骤功能集成。