spark-core_07: $SPARK_HOME/sbin/start-slaves.sh腳本分析:

承接“spark-core_05: $SPARK_HOME/sbin/start-all.sh、start-master.sh腳本分析”,在spark-all.sh腳本中會調用start-slaves.sh來啓Worker節點

 

#!/usr/bin/envbash

#Starts a slave instance on each machine specified in the conf/slaves file.

# 將每個slave實例通過conf/slave文件進行啓動

 

if [-z "${SPARK_HOME}" ]; then

  export SPARK_HOME="$(cd "`dirname"$0"`"/..; pwd)"

fi

START_TACHYON=false

# 將參數循環一遍,然後查看是否有--with-tachyon

while(( "$#" )); do

case$1 in

    --with-tachyon)

      if [ ! -e"${SPARK_HOME}/sbin"/../tachyon/bin/tachyon ]; then

        echo "Error: --with-tachyonspecified, but tachyon not found."

        exit -1

      fi

      START_TACHYON=true

      ;;

  esac

shift

done

#這個spark-config.sh作用就是將$SPARK_CONF_DIR環境變量的值取出來.即:${SPARK_HOME}/conf

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

 

#該腳本會加載spark-env.sh加載一次。並設置環境變量SPARK_SCALA_VERSION=2.10及SPARK_ENV_LOADED=1

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

 

#Find the port number for the master

#如果SPARK_MASTER_PORT是空串則master的端口設置爲7077,SPARK_MASTER_IP就是當前腳本的主機ip

#start-all.sh腳本就是在master節點上啓動的, 如果是HA則別的standby節點是直接啓動的start-master.sh

if ["$SPARK_MASTER_PORT" = "" ]; then

  SPARK_MASTER_PORT=7077

fi

 

if ["$SPARK_MASTER_IP" = "" ]; then

  SPARK_MASTER_IP="`hostname`"

fi

 

if ["$START_TACHYON" == "true" ]; then

  "${SPARK_HOME}/sbin/slaves.sh" cd"${SPARK_HOME}" \;"${SPARK_HOME}/sbin"/../tachyon/bin/tachyon bootstrap-conf"$SPARK_MASTER_IP"

 

  # set -t so we can call sudo

  SPARK_SSH_OPTS="-oStrictHostKeyChecking=no -t" "${SPARK_HOME}/sbin/slaves.sh" cd"${SPARK_HOME}" \;"${SPARK_HOME}/tachyon/bin/tachyon-start.sh" worker SudoMount \;sleep 1

fi

 

#Launch the slaves

#slaves.sh的參數:cd /data/spark-1.6.0-bin-hadoop2.6 ;/data/spark-1.6.0-bin-hadoop2.6/sbin/start-slave.sh spark://luyl152:7077

"${SPARK_HOME}/sbin/slaves.sh"cd "${SPARK_HOME}" \; "${SPARK_HOME}/sbin/start-slave.sh""spark://$SPARK_MASTER_IP:$SPARK_MASTER_PORT"

 

#遍歷conf/slaves中主機,其中有設置SPARK_SSH_OPTS,

#ssh每一臺機器執行cd /data/spark-1.6.0-bin-hadoop2.6 ;/data/spark-1.6.0-bin-hadoop2.6/sbin/start-slave.sh spark://luyl152:7077

接下來分析一下ssh如何使用start-slave.sh來啓動各個節點的worker的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章