这是我第一次尝试配置Yarn调度程序,它不是我希望的工作。集群最初是作为fifo工作的,我正在尝试让作业并行运行。我已经添加到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.allocation.file</name>
<value>/etc/hadoop/conf.empty/fair-scheduler.xml</value>
</property>
然后添加了文件/etc/hadoop/conf.empty/fair-scheduler.xml:
<allocations>
<queue name="root">
<weight>1.0</weight>
<schedulingPolicy>fair</schedulingPolicy>
<aclSubmitApps> </aclSubmitApps>
<aclAdministerApps>*</aclAdministerApps>
</queue>
<defaultQueueSchedulingPolicy>fair</defaultQueueSchedulingPolicy>
<queuePlacementPolicy>
<rule name="specified" create="true"/>
<rule name="user" create="true"/>
</queuePlacementPolicy>
</allocations>
所以在这之后,我停止并启动了yarn资源管理器,我在yarn应用程序控制台上看到了fair scheduler!但是当尝试在集群上运行多个作业时,aws emr控制台只显示一个正在运行的作业和另外两个挂起的作业。此外,yarn控制台只显示在queue root.hadoop中运行的一个作业,看不到其他作业(将在该作业完成后运行)。
那么我怎样才能让这些工作并行运行呢?
1条答案
按热度按时间roejwanj1#
通过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-multiple-steps-in-parallel-cancel-running-steps-and-integrate-with-aws-step-functions/.