2

我有一个由 YARN 管理的集群。我在和中启用了公平调度(详见下文)。yarn-site.xmlfair-scheduler.xml

根据Cloudera 关于公平调度的博客文章,我希望如果我将一些任务安排到q1队列中(动态创建,使用默认值,例如weigth=1),然后将一些其他任务安排到test_queueweight=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
4

0 回答 0