Spark修炼之道(高级篇)——Spark源码阅读:第十节 Standalone运行模式解析

  • 时间:
  • 浏览:5
  • 来源:5分快乐8_5分11选5

Driver Client主却说管理Driver,包括向Master提交Driver、请求杀死Driver等,其源码指在org.apache.spark.deploy.client.scala源码文件当中,类名为:org.apache.spark.deploy.ClientEndpoint。要注意其与org.apache.spark.deploy.client.AppClient.ClientEndpoint类的本质不同。

AppClient內部类ClientEndpoint接收Master发来的RegisteredApplication消息

各类之间的交互关系如下图所示:

Master会接收来自AppClient的RegisterApplication消息,具体源码如下:

向所有Masters注册,可能性Master可能性实现了高可靠(HA),相似ZooKeeper的HA最好的妙招,很多很多指在多个Master,但最终只能Active Master响应,具体源码如下:

SparkContext在创建时,会调用,createTaskScheduler最好的妙招创建相应的TaskScheduler及SchedulerBackend

对应SparkDeploySchedulerBackend中的start最好的妙招源码如下:

通过上述过程便完成Application的注册。其它交互信息如下

创建完成TaskScheduler及SchedulerBackend后,调用TaskScheduler的start最好的妙招,启动SchedulerBackend(Standalone模式对应SparkDeploySchedulerBackend)

AppClient类中的start最好的妙招原码如下:

Spark Standalone采用的是Master/Slave架构,主要涉及到的类包括:

作者:周志湖

网名:摇摆少年梦

上端所有的类都继承自org.apache.spark.rpc.ThreadSafeRpcEndpoint,其底层实现目前一定会通过AKKA来实现的,具体如下图所示:

registerWithMaster最好的妙招便是向Master注册Application,其源码如下:

这里只给出其基本的消息交互,上端有时间再来具体分析。