目錄
1、接收請求,準備操作
executor 接收到了launchtask的請求後,在taskrunner中會做一些準備工作,例如:反序列化task,因為task傳送過來時,是被序列化的。然後通過網路拉取需要的檔案,jar包等。在準備工作之後,執行task的run()方法,該方法最核心的就是呼叫rdd的iterator()方法,此時會針對 task 所對應的 rdd 的partition,執行我們自定義的運算元函式。
2、處理階段 shufflemaptask
計算完partition 資料之後,實際上會使用shufflemanager的shufflewriter, 將資料分割槽之後寫入對應的分割槽檔案。當所有的操作完了之後,實際上會有乙個mapstatus,傳送給dagscheduler中的mapoutputtracker。
3、處理階段 resulttask
該階段,會去mapoutpouttracker中拉取shufflemaptask的輸出資料(rdd), 執行 shuffle 等操作,當然也包括我們自定義的運算元函式。
spark學習 Task原理
task原理 1.executor接收到了launchtask請求,將task封裝成taskrunner執行。2.反序列化task,並通過網路拉取需要的檔案 jar包等,然後執行task的run 方法。3.呼叫rdd的iterator 方法,會針對task所對應的rdd的partition,執行我們...
Spark中Task數量的分析
開始 先說明一下spark作業的幾個核心概念 job 作業 spark根據行動操作觸發提交作業,以行動操作將我們的 切分為多個job。stage 排程階段 每個job中,又會根據寬依賴將job劃分為多個stage 包括shufflemapstage和resultstage task 任務 真正執行計...
Task原理原始碼分析
進入updatedependencies 函式 進入task類中的run 方法 在上面的task的run方法中,呼叫了抽象方法,runtask 那就意味著關鍵的操作都要依賴於子類的實現,task的子類shufflemaptask,resulttask,要執行它們的runtask,才能執行我們自定義的...