4、2 核心组件

1、Stage:虚的
  一组RDD构成的链条 并行的task集合,同一Stage的所有任务有着相同的Shuffle依赖。 阶段的划分按照shuffle标记来进行的。 一个阶段含多个RDD,先有RDD后有Stage 一个阶段含多个task stage通过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组成。 - ResultTask ResultStage由多个ResultTask组成,结果任务直接task后,将结果回传给driver。 3、job 一个action就是一个job 4、Application 一个应用可含多个job。

 5、SparkContext

spark上下文是spark程序的主入口点,表示到spark集群的连接。可以创建RDD、累加器和广播变量。
每个jvm只能有个active的上下文,如果要创建新的上下文,必须stop掉原来的。
渐变 --> 突变
原文地址:https://www.cnblogs.com/lybpy/p/9769913.html