?
1、Stage:虛的
一組RDD構成的鏈條并行的task集合,同一Stage的所有任務有著相同的Shuffle依賴。階段的劃分按照shuffle標記來進行的。一個階段含多個RDD,先有RDD后有Stage一個階段含多個taskstage通過ShuffleDependency劃分,一個stage都是NarrowDependency階段類型有兩種,ShuffleMapStage和ResultStage。- ShuffleMapStage
中間環節該階段任務的結果是下一個階段任務的輸入。需要跟蹤每個分區所在的節點。任務執行期間的中間過程,保存task的輸出數據供下一個reduce進行fetch。該階段可以單獨提交。- ResultStage結果階段直接執行rdd的action操作。對一些分區應用計算函數(不一定需要在所有分區進行計算,比如說first(),take(3))。2、Task:運行在一個節點上,實的 一個task包含一個RDD整個的變換的過程從最后一個RDD的每個分區往前找他的依賴,就是它的任務;最后一個RDD的分區數就是該階段的task數是spark執行單位,有兩種類型。- ShuffelMapTask在ShuffleMapStage由多個ShuffleMapTask組成。- ResultTaskResultStage由多個ResultTask組成,結果任務直接task后,將結果回傳給driver。3、job一個action就是一個job4、Application一個應用可含多個job。
?5、SparkContext
spark上下文是spark程序的主入口點,表示到spark集群的連接。可以創建RDD、累加器和廣播變量。
每個jvm只能有個active的上下文,如果要創建新的上下文,必須stop掉原來的。
?