大資料 spark作業執行架構原理

2022-07-20 18:57:14 字數 735 閱讀 4182

1.啟動spark集群  start-all.sh 啟動spark中的master和worker節點

2.worker程序啟動起來之後向master傳送註冊資訊 worker 是基於 akka的事件驅動模型

3.worker 註冊成功之後不斷的向master傳送心跳包 監聽主節點是否存在

5.master收到driver提交的作業請求之後向worker節點指派對應的作業,其實就是對應的worker節點啟動對應的executor程序

6.worker節點 接收到master節點啟動的executer任務後,啟動對應的程序,並向master匯報可以接收任務

7.當executor程序啟動之後,就向driver程序反向註冊,(基於akka)告訴driver誰可以接收任務

8.driver 接收到註冊之後就知道向誰傳送spark作業

9.dagscheduler元件 根據我們編寫的spark作業,將spark作業分成若干階段的stage,然後為每乙個階段組裝一批task 組成taskset 然後將這些taskset交給 taskscheduler, 由taskscheduler來將任務分發給對應的executor

10.當executor程序接收到driver傳送過來的taskset之後 進行反序列化,將這些task封裝進taskrunner的執行緒中 然後放進本地執行緒池,排程我們得作業執行

Spark執行架構

job 包含多個task組成的平行計算,乙個dag觸發的作業,由action運算元觸發,在sparkcontext中通過runjob方法向spark提交job stage job的排程單位,每個job會根據rdd的寬依賴關係被切分成很多stage,每個stage中包含一組相同的task,這組task...

Spark執行架構

在driver program中新建sparkcontext 包含sparkcontext的程式稱為driver program 2 sparkcontext向資源管理器申請執行executor資源,並啟動standaloneexecutorbackend,executor向sparkcontent...

Spark執行架構

spark執行架構要背下來 driver program 執行main函式的程序,並且建立了乙個sparkcontext cluster manager 乙個從cluster申請資源的外部服務 deploy mode 區分driver程序跑在 client模式下,driver跑在本地 cluster...