Spark修炼之道(高级篇)——Spark源码阅读:第六节 Task提交

  • 时间:
  • 浏览:0
  • 来源:uu快3新平台_uu快3诀窍_讨论群

ThreadSafeRpcEndpoint 继承 RpcEndpoint trait,RpcEndpoint对receive土辦法 进行了描述,具体如下:

后边的代码逻辑完整是在Driver端进行的,调用完launchTasks土辦法 后,Task的执行便在Worker节点上运行了,至此完成Task的提交。

关于resourceOffers土辦法 及launchTasks土辦法 的具体内容,在后续章节中将进行进一步的解析。

DriverEndpoint中的receive土辦法 接收driverEndpoint.send(ReviveOffers)发来的消息,DriverEndpoint继承了ThreadSafeRpcEndpoint trait,具体如下:

driverEndpoint的类型是RpcEndpointRef

Stage由一系列的tasks组成,那些task被封装成TaskSet,TaskSet类定义如下:

它具有如下定义形式:

submitTasks土辦法 定义在TaskScheduler Trait当中,目前TaskScheduler 可能够够了一另一一个多多子类TaskSchedulerImpl,其submitTasks土辦法 源码如下:

SchedulerBackend有多种实现,如下图所示:



大伙以SparkDeploySchedulerBackend为例进行说明,SparkDeploySchedulerBackend继承自CoarseGrainedSchedulerBackend中的reviveOffers土辦法 ,具有代码如下:

从后边的代码还时要看到,避免ReviveOffers消息时,调用的是makeOffers土辦法

在上一节中的 Stage提交中大伙提到,最终stage被封装成TaskSet,使用taskScheduler.submitTasks提交,具体代码如下:

DriverEndpoint 中的对其receive土辦法 进行了重写,具体实现如下: