有没有一种方法可以在运行时配置和更改yarn调度器?

zaq34kh6  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(324)

目前我正在使用默认的Yarn调度程序,但想做一些类似-

Run Yarn using the default scheduler
If (number of jobs in queue > X) {
    Change the Yarn scheduler to FIFO
}

这甚至可以通过代码实现吗?
请注意,我正在aws emr集群上运行spark作业,其中yarn作为rm。

kd3sttzy

kd3sttzy1#

好吧,可以让轮询器检查当前队列(使用rmapi)并更新yarn-site.xml+可能的rm重启。但是,重新启动rm可能会影响队列,因为当前作业将被终止或关闭(稍后可能会重试)。
如果您需要在容量和fifo调度程序之间进行更有效的切换,那么您可能还需要扩展这些类并设计自己的调度程序来完成伪代码的工作。
默认情况下,emr使用容量调度器和defaultresourcecalculator,并在默认队列上启动作业。例如,emr在如下路径上具有Yarn配置:

/home/hadoop/.versions/2.4.0-amzn-6/etc/hadoop/yarn-site.xml

      <property><name>yarn.resourcemanager.scheduler.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value></property>

with 

/home/hadoop/.versions/2.4.0-amzn-6/etc/hadoop/capacity-scheduler.xml

    org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator

相关问题