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步骤功能集成。