Spark学习:spark-shell和spark-submit的区别及各自工作

混江龙づ霸主 提交于 2019-11-30 12:04:38

一、异同

   1、相同点:放置的位置都在/spark/bin目录下面

   2、不同点:

        (1)、spark-shell本身是交互式的,dos界面上会提供一种类似于IDE的开发环境,开发人员可以在上面进行编程。在运行时,会调用底层的spark-submit方法进行执行。

        (2)、spark-submit本身不是交互性的,用于提交在IDEA等编辑器中编译并打包生成的Jar包到集群环境中,并执行。

二、执行

   1、spark-shell

       (1)  直接Spark-shell

               会启动一个SparkSubmit进程来模拟Spark运行环境,是一个单机版的。   

        (2)  Spark-shell --master Spark://hadoop1:7077,hadoop2:7077,hadoop3:7077 --total-executor-cores 5 --executor-memory 5G

             指定任务提交的集群路径在哪里。这就需要提前启动一个真实的Standalone集群。

             可以指定多个master的地址,用逗号隔开。

             如果没有指定--total-executor-cores 5 --executor-memory 5G,那么就会使用集群中所有可用的资源,没一个worker中都会启动executor。

 2、spark-submit

         具体的提交过程,请看Spark源码分析的任务提交过程。

         Spark-Submit --master spark://hadoop1:7077,hadoop2:7077 --executor-memory 5g --total-executor-cores 10 --class 主类路径 jar包的路径 文件的输入路径 文件的输出路径

 

 

 

口诀:submit-shell交互环境,最终submit

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!