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

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

clipboard

先分析 master.sh 

clipboard[1]

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

clipboard[2]

clipboard[3]

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

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

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

clipboard[4]

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

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

1、worker注册

clipboard[5]

2、与worker建立心跳

clipboard[6]

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

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

clipboard[7]

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

clipboard[8]

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

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

clipboard[9]

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

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

posted @ 2016-12-09 18:13  lucas.wu  阅读(314)  评论(0编辑  收藏  举报