摘要:
基本概念
1.1 Application
1.2 Job
1.3 Stage
1.4 TaskSet
1.5 Task
1.6 DAG
2.相关的类
2.1DAGScheduler
2.2ActiveJob
2.3Stage
2.4Task
3.运行方式
4.工作流程
4.1划分Stage
4.2生成Job,提交Stage
4.3任务集的提交
4.4任务作业完成状态的监控
4.5任务结果的获取
内容总结:
基本概念
首先,我们先列出任务调度涉及的相关概念:
Application:由多个作业组成的Spark应用程序
Job:由RDD Action产生的多个stage所组成的一次计算操作
Stage:任务集所对应的调度阶段
TaskSet:这是一组彼此之间有关联,但是互相不存在shuffle依赖的任务所组成的任务集
Task:单个分区数据集上的处理流程单元
DAG:有向无环图
2. 相关的类:
2.1作业调度(DAGScheduler)
DAGScheduler 是基于stage的高级调度(逻辑调度),这个调度会计算每个Job对应的stage的DAG。然后然后以TaskSet的形式提交stage到底层的TaskScheduler.

Spark的stages 是以shuffle为边界切分RDD图来创建的。具有窄依赖(例:map(),filter())的操作会在对应stage的一系列任务中管道式的运行,但是具有宽依赖的操作则需要多个stage.最后所有的stage之间将只有shuffle依赖关系。
实际上这些操作发生在RDD.compute(),在各个RDD的实现上,比如MappedRDD,FilteredRDD等

下面提到还一些概念:
- ssh框架 2016-09-30
- 阿里移动安全 [无线安全]玩转无线电——不安全的蓝牙锁 2017-07-26
- 消息队列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 论文笔记【图片目标分割】 2017-07-26
- 词向量-LRWE模型-更好地识别反义词同义词 2017-07-26
- 从栈不平衡问题 理解 calling convention 2017-07-26
- php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明 2017-07-26
- Swift实现JSON转Model - HandyJSON使用讲解 2017-07-26
- 阿里移动安全 Android端恶意锁屏勒索应用分析 2017-07-26
- 集合结合数据结构来看看(二) 2017-07-26
延伸阅读
学习是年轻人改变自己的最好方式