我在我的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>
当我在队列\u 1 \u 1 \u 1中运行spark作业时,启用动态分配并且没有最大限制,它会占用集群中的所有可用资源。
然而,当我在queue 1\u 2\u 1中运行第二个spark应用程序时,它与queue1具有相同的瞬时公平份额,抢占发生了,但不是我期望的50/50比率。
下面是两张照片,一张是资源分配的前后图。
之前
之后
我已经指定了抢占率和超时,因为这个问题表明,在运行spark作业时,不要基于公平共享抢占资源
公平策略在进行资源平衡时应该只考虑内存,对吗?
有什么问题吗?
谢谢您。
暂无答案!
目前还没有任何答案,快来回答吧!