【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)
 
消息实例发起方接收方说明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理解作用不是很大且理解比较抽象,可以先读后续内容,回头再考虑看这部分内容,或者不读
  

 


原创粉丝点击