
- Spark-submit 提交 Application
- Spark on Yarn运行模式 ,产生Driver
- Driver 会生成一个SparkContext 对象sc , sc 会创建两个对象 分别为DAGScheduler 对象和 TaskScheduler 对象
- sc 去向ClusterManager 进行注册 , 并申请资源
- CM 向Worker 分配资源 【资源调度算法】
- Worker 启动了executor , executor 中有线程池
- executor 向 Driver 反向注册 ,等待task任务提交
- sc 初始化完成 ,执行接下来的代码遇到一个action , 就会产生一个job 任务
- DAGScheduler 会根据RDD 的宽窄依赖关系 ,划分stage ,给TaskScheduler 发送TaskSet (包含多个task)
- TaskScheduler 将Task 序列化后发送给executor
- executor 反序列化Task 对象 ,然后线程池启动Task 任务
- 执行完成后,sc注销资源
本文介绍了Spark通过Spark-submit提交Application后,在Yarn运行模式下的启动流程。从Driver生成SparkContext,到DAGScheduler和TaskScheduler的创建,再到资源调度算法的运用,详细解析了Executor的启动以及Task的执行过程。当遇到action操作时,Spark会生成job,DAGScheduler划分stage,并由TaskScheduler将Task发送给Executor执行,最终完成任务。
980

被折叠的 条评论
为什么被折叠?



