spark的start-master.sh(Master 启动脚本)分析

6 篇文章 0 订阅
3 篇文章 0 订阅
#!/usr/bin/env bash

# Starts the master on the machine this script is executed on.
#在执行此脚本的计算机上启动主机。

#第一步:判断是否有SPARK_HOME的环境变量,如果没有,则将当前spark所在目录定为SPARK_HOME
if [ -z "${SPARK_HOME}" ]; then
  export SPARK_HOME="$(cd "`dirname "$0"`"/..; pwd)"
fi

# NOTE: This exact class name is matched downstream by SparkSubmit.
#注意:该确切的类名与SparkSubmit的下游匹配。
CLASS="org.apache.spark.deploy.master.Master"

 #脚本的帮助信息
#只能匹配以--help或-h结束的串
if [[ "$@" = *--help ]] || [[ "$@" = *-h ]]; then
  echo "Usage: ./sbin/start-master.sh [options]"
    #环境变量可以使用+=进行拼串, 串中的\|表示或的意思,如果不想加\,又有或的意思,需要让grep -E
  pattern="Usage:"
  pattern+="\|Using Spark's default log4j profile:"
  pattern+="\|Registered signal handlers for"

  #请求spark-class将Master类传进去,然后调用--help进行帮助
  #grep -v 表示过滤掉含有$pattern变量的串,然后退出
  "${SPARK_HOME}"/bin/spark-class $CLASS --help 2>&1 | grep -v "$pattern" 1>&2
  exit 1
fi

#将所有调用start-master.sh的参数给变量ORIGINAL_ARGS
ORIGINAL_ARGS="$@"
. "${SPARK_HOME}/sbin/spark-config.sh"
. "${SPARK_HOME}/bin/load-spark-env.sh"

#如果SPARK_MASTER_PORT是空串则master的端口设置为7077
if [ "$SPARK_MASTER_PORT" = "" ]; then
  SPARK_MASTER_PORT=7077
fi

#如果SPARK_MASTER_HOST是空串,则SPARK_MASTER_HOST就是当前脚本的主机ip
if [ "$SPARK_MASTER_HOST" = "" ]; then
  case `uname` in
      (SunOS)
	  SPARK_MASTER_HOST="`/usr/sbin/check-hostname | awk '{print $NF}'`"
	  ;;
      (*)
	  SPARK_MASTER_HOST="`hostname -f`"
	  ;;
  esac
fi

#如果SPARK_MASTER_WEBUI_PORT是空串,则SPARK_MASTER_WEBUI_PORT的端口是8080
if [ "$SPARK_MASTER_WEBUI_PORT" = "" ]; then
  SPARK_MASTER_WEBUI_PORT=8080
fi

  #字符串拼接启动命令
"${SPARK_HOME}/sbin"/spark-daemon.sh start $CLASS 1 \
  --host $SPARK_MASTER_HOST --port $SPARK_MASTER_PORT --webui-port $SPARK_MASTER_WEBUI_PORT \
  $ORIGINAL_ARGS

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值