Spark作業排程流程

2021-10-12 09:14:33 字數 428 閱讀 7062

spark首先會對job進行一系列的rdd轉換操作,並通過rdd之間的依賴關係構建dag(有向無環圖)。然後根據rdd依賴關係將rdd劃分到不同的stage中,每個stage按照partition的數量建立多個task,最後將這些task提交到集群的work節點上執行。具體流程如下圖所示:

通過rdd構建dag。

dagscheduler負責排程dag,把dag拆分成stage(taskset),提交每個stage到taskscheduler。

taskscheduler負責接收taskset,通過cluster manager排程,對於fail或慢的task進行retry。

在worker/container中,執行具體的task。

Spark作業排程

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

Spark的任務排程流程

client 提交應用,master節點啟動driver sparkcontext向clustermanager申請executor資源,worker會先例項化executorrunner物件,在executorrunner啟動中會建立程序生成器processbuilder,然後由該生成器建立coa...

Spark作業排程階段分析

spark作為分布式的大資料處理框架必然或涉及到大量的作業排程,如果能夠理解spark中的排程對我們編寫或優化spark程式都是有很大幫助的 在spark中存在轉換操作 transformation operation 與行動操作 action operation 兩種 而轉換操作只是會從乙個rdd...