spark執行機制

2021-08-29 18:37:44 字數 1044 閱讀 5982

client模式提交——driver程序執行在客戶端執行流程:

使用者啟動客戶端,之後客戶端執行使用者程式,啟動driver程序。在driver中啟動或例項化dagscheduler等元件。 客戶端的driver向master註冊。

worker向master註冊,master命令worker啟動exeuctor。worker通過建立executorrunner執行緒,在executorrunner執行緒內部啟動executorbackend程序。

executorbackend啟動後,向客戶端driver程序內的schedulerbackend註冊,這樣driver程序就能找到計算資源。driver的dagscheduler解析應用中的rdd dag並生成相應的stage,每個stage包含的taskset通過taskscheduler分配給executor。 在executor內部啟動執行緒池並行化執行task。

cluster模式提交——driver程序在worker節點執行執行流程:

使用者啟動客戶端,客戶端提交應用程式給master。

master排程應用,針對每個應用分發給指定的乙個worker啟動driver,即scheduler-backend。 worker接收到master命令後建立driverrunner執行緒,在driverrunner執行緒內建立schedulerbackend程序。driver充當整個作業的主控程序。master會指定其他worker啟動exeuctor,即executorbackend程序,提供計算資源。流程和上面很相似,worker建立executorrunner執行緒,executorrunner會啟動executorbackend程序。

executorbackend啟動後,向driver的schedulerbackend註冊,這樣driver獲取了計算資源就可以排程和將任務分發到計算節點執行。schedulerbackend程序中包含dagscheduler,它會根據rdd的dag切分stage,生成taskset,並排程和分發task到executor。對於每個stage的taskset,都會被存放到taskscheduler中。taskscheduler將任務分發到executor,執行多執行緒並行任務。

Spark優化 推測執行機制

spark job中,乙個stage什麼時候完成,取決於stage下最後乙個task的完成時間。task的完成時間也被很多因素影響,比如partition的分配,executor的資源使用情況,host的執行狀態,集群網路等等。很多情況下因為執行環境導致的task跑的過慢,或者直接卡死,讓task可...

Spark學習筆記4 spark執行機制

spark執行架構包括集群資源管理器 cluster manager 執行作業任務的工作節點 worker node 每個應用的任務控制節點 driver 和每個工作節點上負責具體任務的執行程序 executor 其中,集群資源管理器可以是spark自帶的資源管理器,也可以是yarn或mesos等資...

Spark執行機制及提交過程

依賴 寬依賴和窄依賴,rdd具有分割槽 寬依賴 多個子rdd的分割槽依賴同乙個父rdd的分割槽,類似reducebykey 在父rdd的角度,理解為超生 窄依賴 父rdd的每個分割槽最多被乙個子rdd使用,類似map 在父rdd的角度,理解為獨生 依賴和分割槽 分割槽 rdd分割槽指分布式計算 依賴...