1. 程式人生 > >Spark的stage & job & task 到底是什麼 ,以及劃分原理

Spark的stage & job & task 到底是什麼 ,以及劃分原理

這幾個概念很容易混淆,需要寫一遍文章梳理

Spark的stage & job & task 到底是什麼 ,以及劃分原理

Stage 是spark 中一個非常重要的概念 ,

在一個job 中劃分stage 的一個重要依據是否有shuflle 發生 ,也就是是否會發生資料的重組 (重新組織資料)。

在一個stage 內部會有很多的task 被執行,在同一個stage 中 所有的task 結束後才能根據DAG 依賴執行下一個stage 中的task.

job 有很多工組成,每組任務可以任務是一個stage

Task 是spark 中另一個很重要的概念 ,

task 跟 partition  block 等概念緊密相連 ,task 是執行job 的邏輯單元 ,在task 會在每個executor 中的cpu core 中執行

Job 是一個比task 和 stage 更大的邏輯概念,

job 可以認為是我們在driver 或是通過spark-submit 提交的程式中一個action ,在我們的程式中有很多action  所有也就對應很多的jobs