Spark-shell和Spark-Submit的使用

Spark-shell有两种使用方式:

  • 1:直接Spark-shellshell

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

  • 2:Spark-shell --master Spark://hadoop1:7077,hadoop2:7077,hadoop3:7077 --total-executor-cores 5 --executor-memory 5G源码分析

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

    能够指定多个master的地址,用逗号隔开。scala

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

无论哪一种方式,只要启动完成后。

  • 1/就初始化了一个SparkContext对象为SC,而在这个对象的源码中,对象

    • 1.1/就建立一个SparkENV对象,里面建立一个SystemActor。
    • 1.2/接着建立一个两个Actor:ClientActor和DriverActor。进程

      其中ClientActor就会根据刚刚的--master 来链接指定的集群hadoop

      在worker中会建立好那些运行程序的executor了。资源

  • 2/同时也建立了一个SparkSQl对象,用于SparkSQl操做的。

  • 3/最终会进入一个scala的交互界面中。

    此时能够写经过RDD的transform和action的算子,最终经过action算子调用DAGSchudler对任务进行stage切分,而后经过TaskSchudler调用DriverActor将Stage下发到executor执行。

Spark-Submit的使用

  • 用来提交在IDEA中编写而且打包成jar的包到集群中运行。

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

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

相关文章
相关标签/搜索