2017-08-29 60 views
0

根據我的理解,整個工作中的每個動作都被轉換爲工作,每個工作中的每個混洗階段都被轉換爲階段,並且每個階段輸入的每個分區被轉換爲任務。將火花代碼分配到作業,階段和任務

如果我錯了,請更正我,我無法得到任何實際的定義。

回答

1

在Spark應用程序中調用一個動作觸發啓動一個Spark作業來完成它.Spark檢查DAG並制定一個執行計劃。執行計劃包括將作業的轉換組合成階段。

當Spark在內部對代碼進行優化時,會將其分解爲多個階段,其中每個階段由許多小任務組成。每個階段都包含一系列轉換,可以在不洗刷整個數據的情況下完成轉換。

給定階段的每個任務都是一個單線程計算原子,它包含完全相同的 代碼,只是應用於不同的數據集。任務數由分區數決定。 管理作業流程和計劃任務Spark依靠活動的驅動程序進程。 執行程序進程負責以任務的形式執行這項工作,並負責存儲用戶選擇緩存的任何數據。 單個執行程序有多個用於運行任務的插槽,並且在其整個生命週期中同時運行多個。