【Spark2.0源码学习】-4.Master启动

     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=256m
org.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)
 
消息实例发起方接收方说明
RequestSubmitDriverClientMaster提交驱动程序
RequestKillDriverClientMaster 
RequestDriverStatusClientMaster 
RequestMasterStateMasterWebUIMaster 
BoundPortsRequestMasterMaster 
RequestExecutorsStandaloneAppClientMaster 
KillExecutors  StandaloneAppClientMaster 
 
五、OneWayMessage处理(receive)
消息实例发起方接收方说明
ElectedLeaderMasterMaster 
CompleteRecoveryMasterMaster 
RevokedLeadershipMasterMaster 
RegisterWorkerWorkerMaster 
RegisterApplicationStandaloneAppClientMaster 
UnregisterApplicationStandaloneAppClientMaster 
ExecutorStateChangedWorker/ExecutorRunnerMaster 
DriverStateChangedDriverRunner/MasterMaster 
HeartbeatWorkerMaster 
MasterChangeAcknowledgedStandaloneAppClientMaster 
WorkerSchedulerStateResponseWorkerMaster 
WorkerLatestStateWorkerMaster 
CheckForWorkerTimeOutMasterMaster 
 
五、Master对RpcMessage/OneWayMessage处理逻辑(选读)
     这部分对整体Master理解作用不是很大且理解比较抽象,可以先读后续内容,回头再考虑看这部分内容,或者不读
  

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值