spark 之Job排程模式

2021-08-09 11:04:03 字數 494 閱讀 9313

使用者通過不同的執行緒提交的job可以併發執行,但是受到資源的限制。job到排程池(pool)內申請資源,排程池會根據工程的配置,決定採用哪種排程模式。

在預設情況下,spark的排程器以fifo(先進先出)方式排程job的執行。每個job被切分為多個stage。第乙個job優先獲取所有可用的資源,接下來第二個job再獲取剩餘資源。以此類推,如果第乙個job並沒有占用所有的資源,則第二個job還可以繼續獲取剩餘資源,這樣多個job可以並行執行。如果第乙個job很大,占用所有資源,則第二個job就需要等待第乙個任務執行完,釋放空餘資源,再申請和分配job。如果是相同的job不同的stage,則優先執行較早的stage。

在fair共享模式排程下,spark在多job之間以輪詢(round robin)方式為任務分配資源,所有的任務擁有大致相當的優先順序來共享集群的資源。這就意味著當乙個長任務正在執行時,短任務仍可以分配到資源,提交並執行,並且獲得不錯的響應時間。這樣就不用像以前一樣需要等待長任務執行完才可以。這種排程模式很適合多使用者的場景。

Spark作業排程

spark在standalone模式下,預設是使用fifo的模式,我們可以使用spark.cores.max來設定它的最大核心數,使用spark.executor.memory 來設定它的記憶體。在yarn模式下,使用 num workers設定worker的數量,使用 worker memory設...

Spark排程解析

目錄 spark排程解析 1.相關術語 2.作業 階段 任務之間的關係 如何劃分作業 job 如何劃分階段 stage 如何劃分任務 task 總結 3.spark執行流程 參考文獻 driver通常用sparkcontext代表driver cluster manager 指的是在集群上獲取資源的...

spark資源排程和任務排程

資源排程 1 executor預設在集群中分散啟動,可通過引數配置集中在某個work啟動,不過分散啟動有利於資料本地化。2 如果spark submit提交任務時,如果不指定 executor cores,則spark會在每個work中啟動乙個executor並消耗掉work中的所有core和1g的...