1. 运行sbin/spark-config.sh,设置SPARK_HOME和SPARK_CONF_DIR
2. 如果conf/spark-env.sh,则运行该脚本,设置可选环境变量
3. 检测环境变量SPARK_MASTER_PORT/SPARK_MASTER_IP,为master的端口/ip,默认为7077/{hostname}
以上三项基本同start-master.sh相同
4. 检测SPARK_WORKER_INSTANCES
1) 如果为空,则执行脚本sbin/slaves.sh并传入命令
sbin/slaves.sh的作用是使用ssh免登录进入slaves执行命令
传入的命令是sbin/start-slave.sh 1 spark://$SPARK_MASTER_IP:$SPARK_MASTER_PORT
2) 如果不为空,即启动多实例 。检测SPARK_WORKER_WEBUI_PORT,不存在则默认8081
循环$SPARK_WORKER_INSTANCES遍,执行sbin/slaves.sh脚本并传入命令
传入的命令是sbin/start-slave.sh $(( $i + 1 )) spark://$SPARK_MASTER_IP:$SPARK_MASTER_PORT --webui-port $(( $SPARK_WORKER_WEBUI_PORT + $i ))
即传入的第一个参数是实例序号(1开始),webui-port设置为8081递增