===== 角色介绍 ===== * 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}}