【Spark2.0源码学习】-4.Master启动
/opt/jdk1..0_79/bin/java
-cp /opt/spark-2.1./conf/:/opt/spark-2.1./jars/*:/opt/hadoop-2.6.4/etc/hadoop/
-Xmx1g
-XX:MaxPermSize=256m
org.apache.spark.deploy.master.Master
--host zqh
--port 7077
--webui-port 8080
.png)

- SparkConf:加载key以spark.开头的系统属性(Utils.getSystemProperties)
- MasterArguments:
- 解析Master启动的参数(--ip -i --host -h --port -p --webui-port --properties-file)
- 将--properties-file(没有配置默认为conf/spark-defaults.conf)中spark.开头的配置存入SparkConf
- NettyRpcEnv中的内部处理遵循RpcEndpoint统一处理,这里不再赘述
- BoundPortsResponse返回rpcEndpointPort,webUIPort,restPort真实端口
- 最终守护进程会一直存在等待结束信awaitTermination
.png)

- 【dispatcher-event-loop】线程扫描到OnStart指令后会启动相关MasterWebUI(默认端口8080),根据配置选择安装ResetServer(默认端口6066)
- 另外新起【master-forward-message-thread】线程定期进行worker心跳是否超时
- 如果Worker心跳检测超时,那么对Worker下的发布的所有任务所属Driver进行ExecutorUpdated发送,同时自己在重新LaunchDriver
| 消息实例 | 发起方 | 接收方 | 说明 |
| RequestSubmitDriver | Client | Master | 提交驱动程序 |
| RequestKillDriver | Client | Master | |
| RequestDriverStatus | Client | Master | |
| RequestMasterState | MasterWebUI | Master | |
| BoundPortsRequest | Master | Master | |
| RequestExecutors | StandaloneAppClient | Master | |
| KillExecutors | StandaloneAppClient | Master |
| 消息实例 | 发起方 | 接收方 | 说明 |
| ElectedLeader | Master | Master | |
| CompleteRecovery | Master | Master | |
| RevokedLeadership | Master | Master | |
| RegisterWorker | Worker | Master | |
| RegisterApplication | StandaloneAppClient | Master | |
| UnregisterApplication | StandaloneAppClient | Master | |
| ExecutorStateChanged | Worker/ExecutorRunner | Master | |
| DriverStateChanged | DriverRunner/Master | Master | |
| Heartbeat | Worker | Master | |
| MasterChangeAcknowledged | StandaloneAppClient | Master | |
| WorkerSchedulerStateResponse | Worker | Master | |
| WorkerLatestState | Worker | Master | |
| CheckForWorkerTimeOut | Master | Master |

【Spark2.0源码学习】-4.Master启动的更多相关文章
- 【Spark2.0源码学习】-1.概述
Spark作为当前主流的分布式计算框架,其高效性.通用性.易用性使其得到广泛的关注,本系列博客不会介绍其原理.安装与使用相关知识,将会从源码角度进行深度分析,理解其背后的设计精髓,以便后续 ...
- spark2.0源码学习
[Spark2.0源码学习]-1.概述 [Spark2.0源码学习]-2.一切从脚本说起 [Spark2.0源码学习]-3.Endpoint模型介绍 [Spark2.0源码学习]-4.Master启动 ...
- 【Spark2.0源码学习】-6.Client启动
Client作为Endpoint的具体实例,下面我们介绍一下Client启动以及OnStart指令后的额外工作 一.脚本概览 下面是一个举例: /opt/jdk1..0_79/bin/jav ...
- 【Spark2.0源码学习】-5.Worker启动
Worker作为Endpoint的具体实例,下面我们介绍一下Worker启动以及OnStart指令后的额外工作 一.脚本概览 下面是一个举例: /opt/jdk1..0_79/ ...
- 【Spark2.0源码学习】-2.一切从脚本说起
从脚本说起 在看源码之前,我们一般会看相关脚本了解其初始化信息以及Bootstrap类,Spark也不例外,而Spark我们启动三端使用的脚本如下: %SPARK_HOME%/sbin/st ...
- 【Spark2.0源码学习】-3.Endpoint模型介绍
Spark作为分布式计算框架,多个节点的设计与相互通信模式是其重要的组成部分. 一.组件概览 对源码分析,对于设计思路理解如下: RpcEndpoint: ...
- ThinkPHP5.0源码学习之框架启动流程
ThinkPHP5框架的启动流程图如下: ThinkPHP5的启动流程按照文件分为三步: 1.请求入口(public/index.php) 2.框架启动(thinkphp/start.php) 3.应 ...
- 【Spark2.0源码学习】-7.Driver与DriverRunner
承接上一节内容,Client向Master发起RequestSubmitDriver请求,Master将DriverInfo添加待调度列表中(waitingDrivers),下面针对于Dri ...
- 【Spark2.0源码学习】-8.SparkContext与Application介绍
在前面的内容,我们针对于RpcEndpoint启动以及RpcEndpoint消息处理机制进行了详细的介绍,在我们的大脑里,基本上可以构建Spark各节点的模样.接下来的章节将会从Sp ...
随机推荐
- 如何在container中编译dotnet的eShopOnContainers
准备的软件 问题 Image下载问题 以下就是为啥要有最后一个软件(我是使用版): SQLSever for Linux 内存需求 需要编译Image 成功搞定 参考 Welcome to t ...
- Spring-java代理技术总结
Spring 中采用JDk的动态代理和CGLib代理技术在运行期间织入增强,所以用户不需要装备特殊的编译器或者类装载器就可以使用AOP功能. 要使用jdk的动态代理,目标类必须实现接口,而CGLib代 ...
- PHP之流程的控制
在一个公司中,员工肯定会有高层.中层和普通员工的,这样如果在某个公司员工遇到某种问题,需要请假.或者提一些请求的时候,就会需要去申请,申请的时候有的是可以直接和上级申请的,有时比较重要的事情,是 ...
- Java实现非递归删除目录
最近在学C#的文件系统, 发现C#的文件系统貌似比java的东西少一点, 居然连删除目录都直接做好封装了, 想到学java的时候还要自己写递归删除, 好像没写过非递归的,就在网上查了下, 关于非递归删 ...
- Layoutinlater 转
http://blog.csdn.net/guolin_blog/article/details/12921889
- 【Yii系列】最佳实践之后台业务框架
缘起 上面的几章都讲概念了,没有怎么讲到实践的东西,可能会有些枯燥,这很正常的,概念还是需要慢慢啃的,尤其是官网其他的部分,需要狠狠的啃. 什么,你啃不动了?看看官网旁边的那个在线用户吧. 你不啃的时 ...
- css3动画知识点
杨龙飞 杨龙飞 杨龙飞 杨龙飞 杨龙飞 杨龙飞 <!DOCTYPE html><html><head><style> div{width:100px;h ...
- 搭建Redis缓存
使用的是3.0版本 以前的版本没有redis集群功能 第一步:(单机版) 安装的前提条件: gcc环境: yum install -y gcc-c++ Complete! 第二步: 下载red ...
- iOS最好用的引导页
最近项目结束的时候又要改引导页,之前写的启动页改起来太麻烦了,所以就直接封装一个,功能可能还不是很完善,但是感觉用起来也比较方便,在这里和大家分享一下. 这是github的下载地址:https://g ...
- 20155205 2016-2017-2 《Java程序设计》第4周学习总结
20155205 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 第六章 private成员会被继承,只不过子类无法直接存取,必须通过父类提供的方法来存取(若 ...