我有一个由Yarn管理的集群。我已经启用了公平调度 yarn-site.xml
以及 fair-scheduler.xml
(详见下文)。
根据cloudera关于公平调度的博客ariticle,我预计如果我将一些任务调度到 q1
队列(动态创建,默认值为。 weigth=1
)然后安排一些其他任务 test_queue
( weight=2
),任务来自 q1
将被抢占(1秒后)以平衡 test_queue
这是公平的份额,但它不会发生。
相反 q1
使用70%的群集资源(公平份额为33%)和 test_queue
获得5%的资源,公平份额为67%。
我错过什么了吗?
以下是我的Yarn配置:
<!-- 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>
以及
<!-- 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>
我提交了来自spark示例的pi计算作业:
spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster --executor-memory 7G --executor-cores 4 /opt/spark2/examples/jars/spark-examples_2.11-2.0.0.jar 1000000
暂无答案!
目前还没有任何答案,快来回答吧!