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

本文详细解析了Spark集群中Worker节点的启动流程,包括start-all.sh脚本如何通过调用start-slaves.sh来启动配置文件conf/slaves指定的每台机器上的slave实例,并介绍了与Tachyon集成的选项。

承接“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的
[root@master conf]# /usr/local/spark/sbin/start-all.sh starting org.apache.spark.deploy.master.Master, logging to /usr/local/spark/logs/spark-root-org.apache.spark.deploy.master.Master-1-master.out slave1: starting org.apache.spark.deploy.worker.Worker, logging to /usr/local/spark/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-slave1.out slave2: starting org.apache.spark.deploy.worker.Worker, logging to /usr/local/spark/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-slave2.out slave1: failed to launch: nice -n 0 /usr/local/spark/bin/spark-class org.apache.spark.deploy.worker.Worker --webui-port 8081 spark://master:7077 slave2: failed to launch: nice -n 0 /usr/local/spark/bin/spark-class org.apache.spark.deploy.worker.Worker --webui-port 8081 spark://master:7077 slave1: Spark Command: /usr/local/jdk/bin/java -cp /usr/local/spark/conf/:/usr/local/spark/jars/*:/usr/local/hadoop/etc/hadoop/:/usr/local/hive/lib/ -Xmx1g org.apache.spark.deploy.worker.Worker --webui-port 8081 spark://master:7077 slave1: ======================================== slave1: full log in /usr/local/spark/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-slave1.out slave2: Spark Command: /usr/local/jdk/bin/java -cp /usr/local/spark/conf/:/usr/local/spark/jars/*:/usr/local/hadoop/etc/hadoop/:/usr/local/hive/lib/ -Xmx1g org.apache.spark.deploy.worker.Worker --webui-port 8081 spark://master:7077 slave2: ======================================== slave2: full log in /usr/local/spark/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-slave2.out
最新发布
07-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值