资源调度

资源调度

程序一旦创建sparkcontext,就会创建DAGScheduler、TaskScheduler、SparkDeploySchedulerBackend
SparkDeploySchedulerBackend一启动就会创建一个子actor:AppClient
AppClient一启动,就会将应用的相关参数封装成ApplicationDescription以RegisterApplication消息发送给资源调度平台的Master节点

Master节点收到应用注册的消息RegisterApplication,就会从自身维护的worker资源池中为应用分配资源:
分配策略有两种:尽量打散,尽量集中
尽量打散是默认实现,而且是推荐实现:
1、遍历资源池,判断(该worker上的cpu+内存满足app的要求 && 该worker上不存在app的executor),为true,则将该worker分配给app
2、分配了worker之后:a、通知worker,启动ExecutorBackend
2、通知driver端(TaskSchedulerImpl),应用已经添加了executor

 

 

posted @ 2020-10-19 15:51  十一vs十一  阅读(152)  评论(0编辑  收藏  举报