您的位置:首页 > 其它

Spark Master类源码的分析——Master的主备切换过程

2019-07-02 11:04 141 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_41321219/article/details/94434435

这篇文章主要是对Master主备切换过程的源码进行分析,分析了主备切换的详细实现流程

由于文章本来是写在我的笔记本里的,不方便粘代码,代码就直接贴图了

首先分析completeRecovery()方法:


下面分析上面的schedule方法:

下面分析上面的launchDriver方法:

上面的worker.endpoint.send方法通过Akka或者Netty的Rpc通信实现actor通信


这里是我的一个失误,我的程序里有 Spark 1.x的Jar包 也有 Spark 2.x的Jar包
这里的Akka和Netty分别属于1.x和2.x的Jar包,也就是说并不是通过Akka或Netty实现通信
而是不同版本用不同的我方式

如下就是Akka的send方法:


如下就是startExecutorOnWorkers方法:


下面就是通过conf获取的spreadOutApps(判断准则):

下面解析了scheduleExecutorsOnWorkers方法



spark2.x的这部分代码除了通信框架由Akka换成了Netty,其他的几乎没有变化

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: