Spark修炼之道(高级篇)——Spark源码阅读:第八节 Task执行

  • 时间:
  • 浏览:0
  • 来源:uu直播快3_UU快3直播平台

TaskRunner是有有一一两个应用系统进程,它是有有一一两个内部人员类,被定义在org.apache.spark.executor.Executor类当中,具体源码如下:

在上一节中,你们歌词 歌词 歌词 儿提到在Driver端CoarseGrainedSchedulerBackend中的launchTasks辦法 向Worker节点中的Executor发送启动任务命令,该命令的接收者是CoarseGrainedExecutorBackend(Standalone模式),类定义源码如下:

原本面的代码可不能不能 看后,通过 executor.launchTask辦法 启动Worker节点上Task的运行,其源码如下:

Task run辦法 负责Task的执行,其源码如下:

以ResultTask为例,其runTask辦法 源码如下:

可不能不能 看后它继承ThreadSafeRpcEndpoint,它ThreadSafeRpcEndpoint中的receive辦法 进行了实现,具体源代码如下:

总结一下Task的执行过程:

1 调用Driver端org.apache.spark.scheduler.cluster.CoarseGrainedSchedulerBackend中的launchTasks

2 调用Worker端的org.apache.spark.executor.CoarseGrainedExecutorBackend.launchTask

3 执行org.apache.spark.executor.TaskRunner应用系统进程中的run辦法

4 调用org.apache.spark.scheduler.Task.run辦法

5 调用org.apache.spark.scheduler.ResultTask.runTask辦法

6 调用org.apache.spark.rdd.RDD.iterator辦法