2

YARN によって管理されているクラスターがあります。と で公平なスケジューリングを有効にyarn-site.xmlしましたfair-scheduler.xml(詳細については以下を参照してください)。

公平なスケジューリングに関する Cloudera のブログの記事によると、いくつかのタスクをq1キューにスケジュールし (オンザフライで作成し、デフォルト値などでweigth=1)、他のいくつかのタスクをtest_queue( weight=2) にスケジュールすると、からのタスクはq1(1 秒後に) プリエンプトされると予想されます。test_queueFair Shareのバランスを取りますが、そうはなりません。

代わりに、33% のフェア シェアq1を持つクラスター リソースの 70% を使用し、67% のフェア シェアを持つリソースの 5% を取得します。test_queue

何か見逃しましたか?

ここに画像の説明を入力

以下は私の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>

スパークの例から 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