===== 角色介绍 =====
* driver进程(SchedulerBackend):应用的主控进程,负责应用的解析,切分stage,并调度task到executor,包含DAGScheduler等重要对象
* master:通知worker创建DriverRunner进程
* worker:启动ExecutorRunner进程
* ExecutorRunner进程会启动ExecutorBackend进程
* ExecutorBackend进程向driver内的SchedulerBackend进程注册
===== 任务划分 =====
* 一个action操作产生一个job
* 一个job就是一个RDD DAG
* 一个RDD DAG被切分成多个stage DAG
* 划分stage的总体思想是从最后的finallRDD出发反向递归访问逻辑执行图,每遇到宽依赖就断开,把之前沿途的窄依赖都加入同一个stage
* 每个stage DAG中包含多个task,也叫taskset
* task的数量取决于每个stage中最后一个RDD的partition数量。
* 将每个task调度到executor
{{:pasted:20151102-174648.png}}
===== 更详细的一个图 =====
{{:pasted:20151102-221706.png}}