Spark任务提交流程


提交一个Spark应用程序,首先通过Client向ResourceManager请求启动一个Application,同时检查是否有足够的资源满足Application的需求,如果资源条件满足,则准备ApplicationMaster的启动上下文,交给ResouceManager,并循环监控Application状态
当提交的资源队列中有资源时,ResourceManager会在某个NodeManager上启动ApplicationMaster进程,AplicationMaster会单独启动Driver后台线程,当Driver启动后,ApplicationMaster会通过本地的RPC连接Driver,并开始向ResourceManager申请Container资源运行Executor进程(一个Executior对应一个Container),当ResourceManager返回Container资源,ApplicationMaster则在对应的Co

本文介绍了Spark任务的提交流程,从Client向ResourceManager申请资源启动ApplicationMaster,再由ApplicationMaster和Driver协调Executor的启动和任务调度。在任务调度部分,讨论了Spark中的job、stage和task概念,以及Stage级和Task级调度的过程。DAGScheduler负责Stage划分,TaskScheduler执行Task分发,整个调度过程涉及Driver、Executor和SchedulerBackend的交互。
最低0.47元/天 解锁文章
9341





