Master启动源码分析

master源码分析

Youtube 视频

启动 master

start-master.sh

加载配置文件

. "${SPARK_HOME}/sbin/spark-config.sh"
. "${SPARK_HOME}/bin/load-spark-env.sh"

默认配置

SPARK_MASTER_PORT=7077
SPARK_MASTER_IP=`hostname`
SPARK_MASTER_WEBUI_PORT=8080
CLASS="org.apache.spark.deploy.master.Master"

调用spark-daemon.sh

CLASS="org.apache.spark.deploy.master.Master"
ORIGINAL_ARGS="$@"

"${SPARK_HOME}/sbin"/spark-daemon.sh start $CLASS 1 \
  --ip $SPARK_MASTER_IP --port $SPARK_MASTER_PORT --webui-port $SPARK_MASTER_WEBUI_PORT \
  $ORIGINAL_ARGS
  

spark-daemon.sh

解析spark-daemon.sh

  • 调用命令:

spark-class

加载配置文件

调用Main入口类

Main类入口

启动Master类命令调用

Master类

main方法

  • 启动 'sparkMaster' 服务

  • 给自己发送消息: BoundPortsRequest

onStart方法

  • Started MasterWebUI

  • 实例化默认的存储引擎,实例化Leader选举

  • 默认每分钟检查worker的心跳,未保持连接的worker清除

  • 接受Worker注册

Last updated

Was this helpful?