关于spark中spark-submit和spark-shell简介

spark-submit
1.它主要是用于提交编译并打包好的Jar包到集群环境中来运行,和hadoop中的hadoop jar命令很类似,hadoop jar是提交一个MR-task,而spark-submit是提交一个spark任务,这个脚本**可以设置Spark类路径(classpath)和应用程序依赖包,并且可以设置不同的Spark所支持的集群管理和部署模式。**相对于spark-shell来讲它不具有REPL(交互式的编程环境)的,在运行前需要指定应用的启动类,jar包路径,参数等内容。

2.基本语法

bin/spark-submit \
--class <main-class>
--master <master-url> \
--deploy-mode <deploy-mode> \
--conf <key>=<value> \
... # other options
<application-jar> \
[application-arguments]

对应参数的解释:

--master 指定Master的地址;
--class: 你的应用的启动类 (如 org.apache.spark.examples.SparkPi)--deploy-mode: 是否发布你的驱动到worker节点(cluster) 或者作为一个本地客户端 (client) (default: client)--conf: 任意的Spark配置属性, 格式key=value. 如果值包含空格,可以加引号“key=value” ;
application-jar: 打包好的应用jar,包含依赖. 这个URL在集群中全局可见。 比如hdfs:// 共享存储系统, 如果是 file:// path, 那么所有的节点的path都包含同样的jar
application-arguments: 传给main()方法的参数;
--executor-memory 1G 指定每个executor可用内存为1G;
--total-executor-cores 2 指定每个executor使用的cup核数为2个。

spark-shell
1.这种为命令行方式执行spark程序,这个命令就是启动一个可给用户输入spark命令的shell,也即是一个REPL环境,不指定master时会启动一个SparkSubmit进程来模拟Spark运行环境。

在这里插入图片描述

在这里插入图片描述

指定master时会将任务发送到spark的集群中(前提要有一套spark的Standalone模式集群)

在这里插入图片描述

2.通过查看spark-shell源码可以发现在主main中他会调用spark-submit 的类的入口,总而言之运行spark-shell提交任务后最终还是由spark-submit来完成。

function main() {
    
    
  if $cygwin; then
    # Workaround for issue involving JLine and Cygwin
    # (see http://sourceforge.net/p/jline/bugs/40/).
    # If you're using the Mintty terminal emulator in Cygwin, may need to set the
    # "Backspace sends ^H" setting in "Keys" section of the Mintty options
    # (see https://github.com/sbt/sbt/issues/562).
    stty -icanon min 1 -echo > /dev/null 2>&1
    export SPARK_SUBMIT_OPTS="$SPARK_SUBMIT_OPTS -Djline.terminal=unix"
    "${SPARK_HOME}"/bin/spark-submit --class org.apache.spark.repl.Main --name "Spark shell" "$@"
    stty icanon echo > /dev/null 2>&1
  else
    export SPARK_SUBMIT_OPTS
    "${SPARK_HOME}"/bin/spark-submit --class org.apache.spark.repl.Main --name "Spark shell" "$@"
  fi
}

猜你喜欢

转载自blog.csdn.net/weixin_44080445/article/details/109674537
今日推荐