spark1.4.1 启动过程

时间:2021-05-22 02:30:02

今天稍微没那么忙了,趁着这个时间,准备把spark的启动过程总结一下(),分享给大家。现在使用的spark1.4.1版本

当然前提是你已经把spark环境搭建好了。

1、我们启动spark的时候一般会使用官方提供的启动脚本,start-all.sh ,那我们先来看看,这个脚本做了什么。

# Start all spark daemons.

# Starts the master on this node.

# Starts a worker on each node specified in conf/slaves

以上是它的注释,我们就截取一部分比较重要的代码分析

spark1.4.1 启动过程

先分析 master.sh

spark1.4.1 启动过程

一、可以看到他使用daemon.sh 启动了Master类,那我们进入Master进行分析一下。

spark1.4.1 启动过程

spark1.4.1 启动过程

akka 其实就是一个异步通信机制,可以利用它来控制程序的运行。有兴趣的同学可以参考这个:

那接下来我们看看,启用akka之后它会处理什么样类型的数据

它的处理代码放在Master的类里

spark1.4.1 启动过程

这是一个重写的方法,它是一个偏函数,偏函数的好处就是可以做模式匹配。

我们可以看看它都匹配了几种类型。(这里我先介绍启动的时候和worker交互使用的几个类型)

1、worker注册

spark1.4.1 启动过程

2、与worker建立心跳

spark1.4.1 启动过程

二、接着我看看worker启动的时候做了那些工作,以及他和master的交互

worker 模式和master差不多,先看看main函数

spark1.4.1 启动过程

worker启动的时候有个比较重要的就是步骤就是向master注册

spark1.4.1 启动过程

看看它与master交互的时候使用的几种消息类型

注册成功返回的信息,和定时发送的消息

spark1.4.1 启动过程

总结:以上就是我们使用脚本启动spark时候的master、worker调度的过程,当然这只是一部分,启动过程还有大量细节的工作有兴趣的同学可以一起探讨。这只是一个开始,提交任务后,还有大量的工作,

这个我在后面会继续更新。