• 【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理解作用不是很大且理解比较抽象,可以先读后续内容,回头再考虑看这部分内容,或者不读
      
  • 相关阅读:
    计算某天的下一天:黑盒测试之等价类划分+JUnit参数化测试
    黑盒测试之因果图法
    黑盒测试之等价类划分
    JUnit白盒测试之基本路径测试:称重3次找到假球
    Java实现称重3次找到假球
    用pymysql和Flask搭建后端,响应前端POST和GET请求,实现登录和注册功能
    【算法与数据结构】包含负数的基数排序
    【机器学习实战】第六章--支持向量机
    【机器学习实战】第四章朴素贝叶斯
    【算法与数据结构】--经典排序算法Python实现
  • 原文地址:https://www.cnblogs.com/hframe/p/6772943.html
Copyright © 2020-2023  润新知