0

假設一個Spark任務具有兩個具有獨立依賴關係的階段(它們彼此不依賴),並且它們由DAG調度程序併發/同時(作爲Tasksets)提交給任務調度程序。有人可以更詳細地瞭解執行程序上的可用內核是如何在兩個就緒階段/任務集之間分配的?更確切地說:Spark任務集併發階段提交

  • 直到前一個任務集/階段的任務完成後,第二個任務集/階段的任務纔會啓動?或者,

  • 這兩個任務集的任務可以同時啓動(授予核心),具體取決於由任務調度器實現的邏輯,例如, FIFO /公平?

一般假設一個新的資源報價已經觸發的TaskScheduler做出決定選擇執行一些準備任務(n個準備taksets的)?在這種情況下,taskscheduler實現的邏輯是什麼?

謝謝。

回答

0

這取決於正在使用的調度模式。在 TaskSchedulerImpl.scala中,構造函數根據標記「spark.scheduler.mode」解析調度模式 。缺省值是FIFO,其中 在向第二個任務集提供 之前,所有內核都首先被提供給第一個任務集。