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