首页 > 代码库 > spark1.4.1 启动过程

spark1.4.1 启动过程

今天稍微没那么忙了,趁着这个时间,准备把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

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

技术分享

先分析 master.sh 

技术分享

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

技术分享

技术分享

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

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

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

技术分享

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

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

1、worker注册

技术分享

2、与worker建立心跳

技术分享

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

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

技术分享

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

技术分享

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

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

技术分享

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

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

spark1.4.1 启动过程