3

Spark スタンドアロンクラスター マネージャーを使用して 2 ノード クラスターを使用しています。Scala マルチスレッドで同じものを使用して複数のジョブをトリガーしています。私が見つけたのは、 FIFOの性質のためにscジョブが次々とスケジュールされているため、FAIRスケジューリングを使用しようとしたことです。

    conf.set("spark.scheduler.mode", "FAIR")
    conf.set("spark.scheduler.allocation.file", sys.env("SPARK_HOME") + "/conf/fairscheduler.xml")

    val job1 = Future {
    val job = new Job1()
    job.run()
    }

    val job2 =Future {
    val job = new Job2()
    job.run()
    }


    class Job1{
        def run()
            sc.setLocalProperty("spark.scheduler.pool", "mypool1")
        }
        }

    class Job2{
        def run()
            sc.setLocalProperty("spark.scheduler.pool", "mypool2")
        }
        }



 <pool name="mypool1">
 <schedulingMode>FAIR</schedulingMode>
 <weight>1</weight>
 <minShare>2</minShare>    
  </pool>

 <pool name="mypool2">
 <schedulingMode>FAIR</schedulingMode>
 <weight>1</weight>
 <minShare>2</minShare>    
  </pool>

Job1 と Job2 はランチャー クラスからトリガーされます。これらのプロパティを設定した後でも、ジョブはFIFOで処理されます。FAIRはSpark スタンドアロン クラスター モードで使用できますか?詳しく説明されているページはありますか? Job Scheduling で FAIR と Standalone についてあまり見つけられないようです。私はこのSOF の質問に

4

1 に答える 1

3

スタンドアローンは問題ないと思います。プールを 1 つだけ作成することを説明したので、問題は、少なくとももう 1 つのプールが必要であり、各ジョブを異なるプールに割り当てることだと思います。

FAIR スケジューリングはプール全体で行われ、同じプール内のすべてが FIFO モードで実行されます。

これは、 https ://spark.apache.org/docs/latest/job-scheduling.html#default-behavior-of-pools のドキュメントに基づいています 。

于 2016-10-27T20:07:32.123 に答える