spark的job提交过程源码参考:
http://database.51cto.com/art/201407/444558.htm
注:
TaskSchedulerImpl的backend是在sc初始化时创建的;
yarn用的SchedulerBackend和ExecutorBackend类全路径:org.apache.spark.scheduler.cluster.CoarseGrainedSchedulerBackend、org.apache.spark.executor.CoarseGrainedExecutorBackend。
CoarseGrainedSchedulerBackend中executorActor保存了CoarseGrainedExecutorBackend的actorRef表(收到RegisterExecutor时注册);CoarseGrainedExecutorBackend有driver变量(运行参数包含driverUrl地址,通过底层akka的获得driver的actorSelection)。
TaskRunner.run中对Task反序列化,没找到序列化的地方,ResultTask、ShuffleMapTask实现了Externalizable接口。