首页 理论教育 Executor中任务的加载方式

Executor中任务的加载方式

时间:2023-06-29 理论教育 版权反馈
【摘要】:任务资源都分配好之后,Coar-seGrainedSchedulerBackend将向CoarseGranedExecutorBackend发送LaunchTask消息,将具体的任务发送到Executor上进行计算。CoarseGranedExecutorBackend匹配到LaunchTask消息之后,将会调用Executor的launchTask方法。图5-5 Executor中Task的加载时序图任务加载好了之后,在Executor中将会把构建好的TaskRunner放入线程池运行,至此任务完成加载,开始运行。

Executor中任务的加载方式

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)

978-7-111-55442-4-Chapter05-59.jpg

图5-5 Executor中Task的加载时序图

任务加载好了之后,在Executor中将会把构建好的TaskRunner放入线程池运行,至此任务完成加载,开始运行。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈