【摘要】:任务资源都分配好之后,Coar-seGrainedSchedulerBackend将向CoarseGranedExecutorBackend发送LaunchTask消息,将具体的任务发送到Executor上进行计算。CoarseGranedExecutorBackend匹配到LaunchTask消息之后,将会调用Executor的launchTask方法。图5-5 Executor中Task的加载时序图任务加载好了之后,在Executor中将会把构建好的TaskRunner放入线程池运行,至此任务完成加载,开始运行。
Executor是基于线程池的任务执行器,通过launchTask()方法加载任务,将任务以Task-Runner的形式放入线程池中运行。
DAGScheduler划分好Stage并通过submitMissingTasks方法分配好任务,并把任务交由TaskSchedulerImpl的submitTasks方法,将任务加入调度池,之后调用CoarseGrainedSchedul-erBackend的riviveOffers方法为Task分配资源指定Executor。任务资源都分配好之后,Coar-seGrainedSchedulerBackend将向CoarseGranedExecutorBackend发送LaunchTask消息,将具体的任务发送到Executor上进行计算。
CoarseGranedExecutorBackend匹配到LaunchTask(data)消息之后,将会调用Executor的launchTask方法。launchTask方法中将会构建TaskRunner对象并放入线程池中执行。
具体的调用流程如图5-5所示。(www.xing528.com)
图5-5 Executor中Task的加载时序图
任务加载好了之后,在Executor中将会把构建好的TaskRunner放入线程池运行,至此任务完成加载,开始运行。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。