Spark 核心组件


0. 说明


1. RDD

  轻量级,虚的(轻量级数据集合,没有实际数据)


2. 依赖

  RDD 的依赖是 子 RDD 上的每个分区和父 RDD 分区数量上的对应关系
  Dependency
    |----ShuffleDependency (宽依赖)
    |----NarrowDependency (窄依赖:子 RDD 的每个分区依赖少量的父 RDD 分区)
      |-----One2OneDependency (一对一依赖)
      |-----RangeDependency(范围依赖)
      |-----PruneDependency(Prune 依赖)


扫描二维码关注公众号,回复: 3551400 查看本文章

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


猜你喜欢

转载自www.cnblogs.com/share23/p/9775167.html