我有一个由YARN管理的集群。我在yarn-site.xml
和fair-scheduler.xml
中启用了公平计划(详见下文)。
根据Cloudera's blog ariticle on fair scheduling我希望如果我将某些任务安排到q1
队列(在运行中创建,使用默认值,例如。weigth=1
),然后将其他一些任务安排到{ {1}} test_queue
),来自weight=2
的任务将被抢占(1秒后)以平衡q1
的公平分享,但它不会发生。
相反,test_queue
使用70%的群集资源,公平共享为33%)而q1
获得5%的资源公平共享 67%。
我错过了什么吗?
以下是我的YARN配置:
test_queue
和
<!-- yarn-site.xml -->
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>
<property>
<name>yarn.scheduler.fair.preemption</name>
<value>true</value>
</property>
我从火花示例提交Pi计算作业:
<!-- fair-scheduler.xml -->
<allocations>
<queue name="test_queue">
<weight>2.0</weight>
<schedulingPolicy>fair</schedulingPolicy>
<fairSharePreemptionTimeout>1</fairSharePreemptionTimeout>
<fairSharePreemptionThreshold>1</fairSharePreemptionThreshold>
</queue>
<defaultFairSharePreemptionTimeout>1</defaultFairSharePreemptionTimeout>
<defaultFairSharePreemptionThreshold>1</defaultFairSharePreemptionThreshold>
<queuePlacementPolicy>
<rule name="specified"/>
<rule name="default" queue="test_queue"/>
</queuePlacementPolicy>
</allocations>