Spark源码学习(一)---Spark的启动脚本
2017-01-19 00:13
435 查看
启动Spark的时候,分别执行${SPARK_HOME}/sbin/start-master.sh和${SPARK_HOME}/sbin/start-slaves.sh两个脚本,下面就先看一下这两个脚本中都做了什么;
(1)${SPARK_HOME}/sbin/start-master.sh:
(1.1)首先将一些配置信息加载到环境变量中:
. "${SPARK_HOME}/sbin/spark-config.sh"
. "${SPARK_HOME}/bin/load-spark-env.sh"
(1.2)然后把取参数中的MasterIP,MasterPort和MasterWebUIPort等,如果没有传递参数,则取默认值:
if [ "$SPARK_MASTER_PORT" = "" ]; then
SPARK_MASTER_PORT=7077
fi
if [ "$SPARK_MASTER_IP" = "" ]; then
SPARK_MASTER_IP=`hostname`
fi
if [ "$SPARK_MASTER_WEBUI_PORT" = "" ]; then
SPARK_MASTER_WEBUI_PORT=8080
fi
(1.3)下面这句话真正启动了Master:
CLASS="org.apache.spark.deploy.master.Master"
......
"${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
(1.4)spark-daemon.sh主要内容如下:
command=$1
(1.5)spark-class主要内容如下:
(1.6)所以启动Master的时候,实际上是执行了org.apache.spark.deploy.master.Master的main方法,所以后面看Master的方法 的时候,要从这里开始。
(2)${SPARK_HOME}/sbin/start-slaves.sh:
(2.1)首先将一些配置信息加载到环境变量中:
. "${SPARK_HOME}/sbin/spark-config.sh"
. "${SPARK_HOME}/bin/load-spark-env.sh"
(2.2)然后把取参数中的MasterIP,MasterPort和MasterWebUIPort等,如果没有传递参数,则取默认值:
if [ "$SPARK_MASTER_PORT" = "" ]; then
SPARK_MASTER_PORT=7077
fi
if [ "$SPARK_MASTER_IP" = "" ]; then
SPARK_MASTER_IP="`hostname`"
fi
(2.3)下面这句话真正启动了Master:
# Launch the slaves
"${SPARK_HOME}/sbin/slaves.sh" cd "${SPARK_HOME}" \; "${SPARK_HOME}/sbin/start-slave.sh" "spark://$SPARK_MASTER_IP:$SPARK_MASTER_PORT"
(2.4)start-slave.sh主要内容如下:
CLASS="org.apache.spark.deploy.worker.Worker"
......
"${SPARK_HOME}/sbin"/spark-daemon.sh start $CLASS $WORKER_NUM \
--webui-port "$WEBUI_PORT" $PORT_FLAG $PORT_NUM $MASTER "$@"
(2.5) 所以看Work的源码,需要从org.apache.spark.deploy.worker.Worker看起
(1)${SPARK_HOME}/sbin/start-master.sh:
(1.1)首先将一些配置信息加载到环境变量中:
. "${SPARK_HOME}/sbin/spark-config.sh"
. "${SPARK_HOME}/bin/load-spark-env.sh"
(1.2)然后把取参数中的MasterIP,MasterPort和MasterWebUIPort等,如果没有传递参数,则取默认值:
if [ "$SPARK_MASTER_PORT" = "" ]; then
SPARK_MASTER_PORT=7077
fi
if [ "$SPARK_MASTER_IP" = "" ]; then
SPARK_MASTER_IP=`hostname`
fi
if [ "$SPARK_MASTER_WEBUI_PORT" = "" ]; then
SPARK_MASTER_WEBUI_PORT=8080
fi
(1.3)下面这句话真正启动了Master:
CLASS="org.apache.spark.deploy.master.Master"
......
"${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
(1.4)spark-daemon.sh主要内容如下:
command=$1
(1.5)spark-class主要内容如下:
(1.6)所以启动Master的时候,实际上是执行了org.apache.spark.deploy.master.Master的main方法,所以后面看Master的方法 的时候,要从这里开始。
(2)${SPARK_HOME}/sbin/start-slaves.sh:
(2.1)首先将一些配置信息加载到环境变量中:
. "${SPARK_HOME}/sbin/spark-config.sh"
. "${SPARK_HOME}/bin/load-spark-env.sh"
(2.2)然后把取参数中的MasterIP,MasterPort和MasterWebUIPort等,如果没有传递参数,则取默认值:
if [ "$SPARK_MASTER_PORT" = "" ]; then
SPARK_MASTER_PORT=7077
fi
if [ "$SPARK_MASTER_IP" = "" ]; then
SPARK_MASTER_IP="`hostname`"
fi
(2.3)下面这句话真正启动了Master:
# Launch the slaves
"${SPARK_HOME}/sbin/slaves.sh" cd "${SPARK_HOME}" \; "${SPARK_HOME}/sbin/start-slave.sh" "spark://$SPARK_MASTER_IP:$SPARK_MASTER_PORT"
(2.4)start-slave.sh主要内容如下:
CLASS="org.apache.spark.deploy.worker.Worker"
......
"${SPARK_HOME}/sbin"/spark-daemon.sh start $CLASS $WORKER_NUM \
--webui-port "$WEBUI_PORT" $PORT_FLAG $PORT_NUM $MASTER "$@"
(2.5) 所以看Work的源码,需要从org.apache.spark.deploy.worker.Worker看起
相关文章推荐
- spark源码学习(八)--- executor启动task分析
- spark源码学习(二)------------spark-shell启动分析
- 【Spark2.0源码学习】-6.Client启动
- 【Spark2.0源码学习】-4.Master启动
- Spark学习之路 (十六)SparkCore的源码解读(二)spark-submit提交脚本
- 【Spark2.0源码学习】-4.Master启动
- Spark 源码阅读一-启动脚本
- 【Spark2.0源码学习】-5.Worker启动
- 【Spark2.0源码学习】-6.Client启动
- Spark学习之路 (十五)SparkCore的源码解读(一)启动脚本
- Spark源码学习(二)---Master和Worker的启动以及Actor通信流程
- 【Spark2.0源码学习】-5.Worker启动
- 【Spark2.0源码学习】-2.一切从脚本说起
- 【Spark2.0源码学习】-2.一切从脚本说起
- spark源码学习(三)---worker源码分析-worker启动driver、executor分析
- chrome源码学习之启动流程简介
- lua学习笔记 1 android 调用Lua, Lua脚本中启动Intent
- squid源码安装的服务启动脚本
- nginx 源码学习笔记(十九)—— nginx启动过程函数调用图
- chrome源码学习之启动流程简介