如何解决带有Spark应用程序的纱线公平调度程序未按预期抢占
我在Yarn群集中启用了FairScheduling,具有以下队列配置:
<queue name="queue_1">
<weight>9.0</weight>
<schedulingPolicy>fair</schedulingPolicy>
<fairSharePreemptionTimeout>5</fairSharePreemptionTimeout>
<fairSharePreemptionThreshold>1</fairSharePreemptionThreshold>
<queue name="queue_1_1">
<weight>4.4</weight>
<queue name="queue_1_1_1">
<weight>1.0</weight>
</queue>
<queue name="queue_1_2_1">
<weight>3.0</weight>
</queue>
<queue name="queue_1_3_1">
<weight>6.0</weight>
</queue>
</queue>
<queue name="queue_1_2">
<weight>4.4</weight>
<queue name="queue_1_1_2">
<weight>1.0</weight>
</queue>
<queue name="queue_1_2_2">
<weight>3.0</weight>
</queue>
<queue name="queue_1_3_2">
<weight>6.0</weight>
</queue>
</queue>
</queue>
<queuePlacementPolicy>
<rule name="specified" create="false"/>
<rule name="reject"/>
</queuePlacementPolicy>
当我在队列_1_1_1中运行spark作业时,启用了动态分配并且没有最大限制,它占用了集群中的所有可用资源。
但是,当我在queue_1_2_1中运行第二个Spark应用程序时,该应用程序具有与queue1相同的瞬时FairShare,则会发生抢占,但不是我期望的50/50比率。
下面是两幅画,分别是资源分配的前后。
我已经指定了抢占率和超时,因为这个问题表明 YARN not preempting resources based on fair shares when running a Spark job
公平政策应仅在进行资源平衡时考虑内存,对吧?
可能是什么问题?
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。