2016-08-10 6 views
0

複数のジョブが同時に実行されるように送信されたときにスパークジョブの動作をテストしている間に、後でサブミットされたジョブが送信されます。私はspi uiの2つの設定に出くわしました。下の画像に示すように、1つはsparkのスケジューリングモードとアプリケーションキューの違いは何ですか?

scheduling mode in spark

そして、もう一つは、私は2つの設定とプリエンプションの違いを理解したい enter image description here

の下にショーとしてスケジューラの下にあるモード設定可能withing火花をスケジューリングしています。私の要件は、より大きな仕事をしている間に、間に提出された小さな仕事は、長い時間待たずに資源を取得しなければならないということです。

答えて

0

図に示すSpark.scheduling.mode(Fair/FIFO)は、FAIRまたはFIFOポリシーなどを使用してタスクスケジューラに送信されたタスクセット(単一の同じステージのタスク)をスケジュールするためのものだと思います。同じ仕事。

ジョブを同時に実行できるようにするには、各ジョブ(変換+アクション)を別のスレッドで実行します。ジョブがDAGに送信されると、ジョブが完了して結果が返されるか保存されるまで、メインスレッドはブロックされます。

0

スパークオンヤーンモードについて説明します。

スパークするためにスカラコードを送信すると、sparkクライアントは糸とやり取りして糸アプリを起動します。このアプリケーションは、あなたのスカラコード内のすべての仕事の義務となります。ほとんどの場合、各ジョブはreduce()、collect()のようなSpark Actionに対応します。次に、このアプリケーションでさまざまなジョブをスケジュールする方法が問題になります。実行を待っている?それに対処するために、SparkはFIFOとFairを含むジョブのスケジューラルールを作成します。つまり、FIFOとFairを含むsparkスケジューラをはジョブのレベルにあります。それはSpark ApplicationMasterです。スケジューリング作業。

しかし、糸のスケジューラは、コンテナ .Yarnのレベルではこのコンテナで実行されているものを気にしないで、多分コンテナは、それはマッパータスク、減速タスク、スパーク・ドライバ・プロセスまたはスパークエグゼキュータですプロセスなどが含まれます。たとえば、MapReduceジョブは現在10個のコンテナを要求しており、各コンテナは10gのメモリと2個のVcoresを必要とし、Sparkアプリケーションは現在4個のコンテナを必要としており、各コンテナには10gのメモリと2個のVcoresが必要です。 Yarnは、現在クラスタ内で利用可能なコンテナの数と、ルールごとにどのくらいのリソースを割り当てるかを決定する必要があります。このルールは、FairSchedulerとCapacitySchedulerを含む糸のスケジューラです。

一般に、あなたのスパーク・アプリケーションは糸から複数のコンテナを要求しますが、糸は現在そのスケジューラによってスパーク・アプリケーションに割り当てられるコンテナの数を決定します。これらのコンテナが割り当てられた後、Spark ApplicationMasterは、その仕事の中で

以下は、スパークスケジューラに関する公式文書です。https://spark.apache.org/docs/2.0.0-preview/job-scheduling.html#scheduling-within-an-application

関連する問題