1. 程式人生 > >Spark 核心組件

Spark 核心組件

直接 ask ica lmap style 階段 depend 輸出 ()


0. 說明


1. RDD

  輕量級,虛的(輕量級數據集合,沒有實際數據)


2. 依賴

  RDD 的依賴是 子 RDD 上的每個分區和父 RDD 分區數量上的對應關系
  Dependency
    |----ShuffleDependency (寬依賴)
    |----NarrowDependency (窄依賴:子 RDD 的每個分區依賴少量的父 RDD 分區)
      |-----One2OneDependency (一對一依賴)
      |-----RangeDependency(範圍依賴)
      |-----PruneDependency(Prune 依賴)


3. Stage(階段)

  並行的 task 集合,同一 Stage 的所有任務有著相同的 Shuffle 依賴。
  階段的劃分按照 Shuffle 標記來進行的。
  階段類型有兩種,ShuffleMapStage 和ResultStage。


  【ShuffleMapStage】
  該階段任務的結果是下一個階段任務的輸入。需要跟蹤每個分區所在的節點。
  任務執行期間的中間過程,保存task的輸出數據供下一個 reduce 進行 fetch(抓取) 。
  該階段可以單獨提交。

  【 ResultStage】
  結果結果直接執行 RDD 的 action 操作。


  對一些分區應用計算函數(不一定需要在所有分區進行計算,比如說first())。


4. Task

  task 是 Spark 執行單位,有兩種類型。


  【ShuffelMapTask】
  在 ShuffleMapStage 由多個 ShuffleMapTask 組成。

  【ResultTask】
  ResultStage 由多個 ResultTask 組成,結果任務直接 task 後,將結果回傳給 driver。

  driver:


5. job

  一個 action 就是一個 job


6. Application

  一個應用可以包含多個 job


Spark 核心組件