【Spark2.0源码学习】-4.Master启动
来源:互联网 发布:金元证券软件下载 编辑:程序博客网 时间:2024/05/29 18:53
Master作为Endpoint的具体实例,下面我们介绍一下Master启动以及OnStart指令后的相关工作
一、脚本概览
下面是一个举例:
/opt/jdk1.7.0_79/bin/java-cp /opt/spark-2.1.0/conf/:/opt/spark-2.1.0/jars/*:/opt/hadoop-2.6.4/etc/hadoop/-Xmx1g-XX:MaxPermSize=256morg.apache.spark.deploy.master.Master--host zqh--port 7077--webui-port 8080
二、启动流程
Master的启动流程如下:
- 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
三、OnStart监听事件
Master的启动完成后异步执行工作如下:
- 【dispatcher-event-loop】线程扫描到OnStart指令后会启动相关MasterWebUI(默认端口8080),根据配置选择安装ResetServer(默认端口6066)
- 另外新起【master-forward-message-thread】线程定期进行worker心跳是否超时
- 如果Worker心跳检测超时,那么对Worker下的发布的所有任务所属Driver进行ExecutorUpdated发送,同时自己在重新LaunchDriver
四、RpcMessage处理(receiveAndReply)
五、OneWayMessage处理(receive)
消息实例发起方接收方说明ElectedLeaderMasterMaster CompleteRecoveryMasterMaster RevokedLeadershipMasterMaster RegisterWorkerWorkerMaster RegisterApplicationStandaloneAppClientMaster UnregisterApplicationStandaloneAppClientMaster ExecutorStateChangedWorker/ExecutorRunnerMaster DriverStateChangedDriverRunner/MasterMaster HeartbeatWorkerMaster MasterChangeAcknowledgedStandaloneAppClientMaster WorkerSchedulerStateResponseWorkerMaster WorkerLatestStateWorkerMaster CheckForWorkerTimeOutMasterMaster 五、Master对RpcMessage/OneWayMessage处理逻辑(选读)
这部分对整体Master理解作用不是很大且理解比较抽象,可以先读后续内容,回头再考虑看这部分内容,或者不读
阅读全文
0 0
- 【Spark2.0源码学习】-4.Master启动
- 【Spark2.0源码学习】-5.Worker启动
- 【Spark2.0源码学习】-6.Client启动
- 0002.spark2.0源码解析(2)--master的HA
- 【Spark2.0源码学习】-1.概述
- 0003.spark2.0源码分析(3)--master注册机制与状态管理
- 【Spark2.0源码学习】-10.Task执行与回馈
- 【Spark2.0源码学习】-2.一切从脚本说起
- 【Spark2.0源码学习】-3.Endpoint模型介绍
- 【Spark2.0源码学习】-7.Driver与DriverRunner
- 【Spark2.0源码学习】-8.SparkContext与Application介绍
- Spark2.0源码学习-Job提交与Task的拆分
- spark2.2.0源码学习过程记录:序
- spark2.2.0源码学习过程记录:Day3
- spark2.2.0源码学习过程记录:Day4
- spark2.2.0源码学习过程记录:Day5
- spark2.2.0源码学习过程记录:Day6
- spark2.2.0源码学习过程记录:Day7
- 函数基础
- JavaScript中的 == 和 === 的区别
- 文件IO与标准IO
- Kprobe添加linux内核钩子定位bug
- 【Android】圆角Button的实现
- 【Spark2.0源码学习】-4.Master启动
- 冒泡算法与选择排序
- DOM节点的基本属性(一)
- Hive----查询执行计划(explain)和分析表数据(ANALYZE)
- 10022---分布式系统理论基础
- Intellij IDEA 快捷键整理
- 记第一次kaggle之旅
- minist读取一张图片
- 【Spark2.0源码学习】-5.Worker启动