zoukankan      html  css  js  c++  java
  • 【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)
     
    消息实例 发起方 接收方 说明
    RequestSubmitDriver Client Master 提交驱动程序
    RequestKillDriver Client Master  
    RequestDriverStatus Client Master  
    RequestMasterState MasterWebUI Master  
    BoundPortsRequest Master Master  
    RequestExecutors StandaloneAppClient Master  
    KillExecutors   StandaloneAppClient Master  
     
    五、OneWayMessage处理(receive)
    消息实例 发起方 接收方 说明
    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  
     
    五、Master对RpcMessage/OneWayMessage处理逻辑(选读)
         这部分对整体Master理解作用不是很大且理解比较抽象,可以先读后续内容,回头再考虑看这部分内容,或者不读
      
  • 相关阅读:
    面试遇到的相关问题
    webpack的学习之旅
    ajax请求数据
    css选择器
    对BFC的理解
    对React的理解
    获取DOM的真实节点
    翻转拼图网页小游戏制作
    acm比赛刷题小技巧
    动态规划 背包九讲的实现。
  • 原文地址:https://www.cnblogs.com/hframe/p/6772943.html
Copyright © 2011-2022 走看看