1.测试或实验性质的本地运行模式(单机)web
指令示例:shell
1)spark-shell --master local 效果是同样的并发
2)spark-shell --master local[4] 表明会有4个线程(每一个线程一个core)来并发执行应用程序。app
运行该模式很是简单,只须要把Spark的安装包解压后,改一些经常使用的配置便可使用,而不用启动Spark的Master、Worker守护进程( 只有集群的Standalone方式时,才须要这两个角色),也不用启动Hadoop的各服务(除非你要用到HDFS),这是和其余模式的区别,要记住才能理解。框架
2.测试或实现性质的本地伪集群运行模式(单机模拟集群)分布式
这种运行模式,和Local[N]很像,不一样的是,它会在单机启动多个进程来模拟集群下的分布式场景,而不像Local[N]这种多个线程只能在一个进程下委屈求全的共享资源。一般也是用来验证开发出来的应用程序逻辑上有没有问题,或者想使用Spark的计算框架而没有太多资源。oop
指令示例:测试
1)spark-shell --master local-cluster[2, 3, 1024]ui
用法是:提交应用程序时使用local-cluster[x,y,z]参数:x表明要生成的executor数,y和z分别表明每一个executor所拥有的core和memory数。spa
该模式依然很是简单,只须要把Spark的安装包解压后,改一些经常使用的配置便可使用。而不用启动Spark的Master、Worker守护进程( 只有集群的standalone方式时,才须要这两个角色),也不用启动Hadoop的各服务(除非你要用到HDFS),这是和其余模式的区别哦,要记住才能理解。
3.spark自带Cluster Manager的standalone Client模式(集群)
指令示例:
1)spark-shell --master spark://wl1:7077
或者
2)spark-shell --master spark://wl1:7077 --deploy-mode client
产生的进程:
①Master进程作为cluster manager,用来对应用程序申请的资源进行管理
②SparkSubmit 作为Client端和运行driver程序
③CoarseGrainedExecutorBackend 用来并发执行应用程序
4.spark 自带Cluster manager 的Standalone cluster模式(集群)
指令示例:
1)spark-submit --master spark://wl1:6066 --deploy-mode cluster
第4种模式和第3种模型的区别:
①客户端的SparkSubmit进程会在应用程序提交给集群以后就退出
②Master会在集群中选择一个Worker进程生成一个子进程DriverWrapper来启动driver程序
③而该DriverWrapper 进程会占用Worker进程的一个core,因此一样的资源下配置下,会比第3种运行模式,少用1个core来参与计算
④应用程序的结果,会在执行driver程序的节点的stdout中输出,而不是打印在屏幕上
5.基于YARN的Resource Manager 的Client 模式(集群)
如今愈来愈多的场景,都是Spark跑在Hadoop集群中,因此为了作到资源可以均衡调度,会使用YARN来作为Spark的Cluster Manager,来为Spark的应用程序分配资源。在执行Spark应用程序前,要启动Hadoop的各类服务。因为已经有了资源管理器,因此不须要启动Spark的Master、Worker守护进程。
使用以下命令执行应用程序:
指令示例:
1)spark-shell --master yarn
或者
2)spark-shell --master yarn --deploy-mode client
提交应用程序后,各节点会启动相关的JVM进程,以下:
①在Resource Manager节点上提交应用程序,会生成SparkSubmit进程,该进程会执行driver程序。
②RM会在集群中的某个NodeManager上,启动一个ExecutorLauncher进程,来作为ApplicationMaster。
③另外,RM也会在多个NodeManager上生成CoarseGrainedExecutorBackend进程来并发的执行应用程序。
6.基于YARN的Resource Manager 的 Cluster 模式(集群)
1)spark-shell --master yarn --deploy-mode cluster
和第5种运行模式,区别以下:
此外,还有Spark On Mesos模式 能够参阅: