從腳本說(shuō)起

     在看源碼之前,我們一般會(huì)看相關(guān)腳本了解其初始化信息以及Bootstrap類,Spark也不例外,而Spark我們啟動(dòng)三端使用的腳本如下:

  • %SPARK_HOME%/sbin/start-master.sh

  • %SPARK_HOME%/sbin/start-slaves.sh

  • %SPARK_HOME%/sbin/start-all.sh

  • %SPARK_HOME%/bin/spark-submit

 

     三端啟動(dòng)腳本中對(duì)于公共處理部分進(jìn)行抽取為獨(dú)立的腳本,如下:

     

spark-config.sh初始化環(huán)境變量 SPARK_CONF_DIR, PYTHONPATH
bin/load-spark-env.sh

初始化環(huán)境變量SPARK_SCALA_VERSION,

調(diào)用%SPARK_HOME%/conf/spark-env.sh加載用戶自定義環(huán)境變量

conf/spark-env.sh用戶自定義配置

 

    接下來(lái)針對(duì)于一些重要的腳本進(jìn)行一一描述

一. start-daemon.sh

     主要完成進(jìn)程相關(guān)基本信息初始化,然后調(diào)用bin/spark-class進(jìn)行守護(hù)進(jìn)程啟動(dòng),該腳本是創(chuàng)建端點(diǎn)的通用腳本,三端各自腳本都會(huì)調(diào)用spark-daemon.sh腳本啟動(dòng)各自進(jìn)程

     大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

  • 初始化 SPRK_HOME,SPARK_CONF_DIR,SPARK_IDENT_STRING,SPARK_LOG_DIR環(huán)境變量(如果不存在)

  • 初始化日志并測(cè)試日志文件夾讀寫權(quán)限,初始化PID目錄并校驗(yàn)PID信息

  • 調(diào)用/bin/spark-class腳本,/bin/spark-class見下

 

二. bin/spark-class

  •  master調(diào)用舉例:bin/spark-class --class org.apache.spark.deploy.master.Master --host $SPARK_MASTER_HOST --port $SPARK_MASTER_PORT --webui-port $SPARK_MASTER_WEBUI_PORT $ORIGINAL_ARGS

  • 初始化 RUNNER(java),SPARK_JARS_DIR(%SPARK_HOME%/jars),LAUNCH_CLASSPATH信息

  • 調(diào)用( "$RUNNER" -Xmx128m -cp "$LAUNCH_CLASSPATH" org.apache.spark.launcher.Main "$@")獲取最終執(zhí)行的shell語(yǔ)句

  • 網(wǎng)友評(píng)論