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

这篇文章主要是对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,其他的几乎没有变化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值