Amazon web services 有没有办法在运行时配置和更改纱线调度程序?

Amazon web services 有没有办法在运行时配置和更改纱线调度程序?,amazon-web-services,hadoop,yarn,job-scheduling,Amazon Web Services,Hadoop,Yarn,Job Scheduling,目前我正在使用默认的纱线调度程序,但希望执行以下操作- Run Yarn using the default scheduler If (number of jobs in queue > X) { Change the Yarn scheduler to FIFO } 这甚至可以通过代码实现吗 请注意,我正在aws EMR集群上运行Spark作业,其中Thread为RM。好的,可以让轮询器检查当前队列(使用RM API)并更新Thread-site.xml+RM的可能重新启动。

目前我正在使用默认的纱线调度程序,但希望执行以下操作-

Run Yarn using the default scheduler
If (number of jobs in queue > X) {
    Change the Yarn scheduler to FIFO
}
这甚至可以通过代码实现吗


请注意,我正在aws EMR集群上运行Spark作业,其中Thread为RM。

好的,可以让轮询器检查当前队列(使用RM API)并更新Thread-site.xml+RM的可能重新启动。但是,重新启动RM可能会影响队列,因为当前作业将被终止或关闭(稍后可能重试)

如果您需要在容量和FIFO调度程序之间进行更有效的切换,那么您可能还需要扩展这些类,并设计您自己的调度程序来完成伪代码的工作

默认情况下,EMR使用容量调度器和DefaultResourceCalculator,并在默认队列上启动作业。例如,EMR在如下路径上具有纱线配置:

/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
/home/hadoop/.versions/2.4.0-amzn-6/etc/hadoop/warn-site.xml
Thread.resourcemanager.scheduler.classorg.apache.hadoop.Thread.server.resourcemanager.scheduler.capacity.CapacityScheduler
具有
/home/hadoop/.versions/2.4.0-amzn-6/etc/hadoop/capacity-scheduler.xml
org.apache.hadoop.warn.util.resource.DefaultResourceCalculator

这对您来说可能有些过分,但如果您想配置队列/资源的自动重新分配,您可以研究抢占(老实说,我自己也在研究,所以我不是专家)。请参阅和,以获得良好的概述。为什么您认为这是一种过分的做法?只是不简单,因为您的伪代码都是;)