ark的运行模式多种多样,灵活多变,部署在单机上时,既可以用本地模式运行,也可以用伪分布模式运行,而当以分布式集群方式部署时,也有众多的运行模式可供选择,这取决于集群的实际情况,底层的资源调度即可以依赖外部资源调度框架,也可以使用Spark内建的Standalone模式。
1、本地模式:Spark单机运行,常用于本地开发测试,本地还分为local和local cluster。
2、Standalone模式:构建一个由Master+Slave构成的Spark集群,Spark运行在集群中。
3、Spark on Mesos模式:Spark客户端直接连接Mesos。不需要额外构建Spark集群。
4、Spark on Yarn模式:Spark客户端直接连接Yarn。不需要额外构建Spark集群。
注:对外部资源调度框架的支持,目前相对稳定的有Mesos模式,以及hadoop YARN模式。
一、Standalone模式
Standalone模式使用Spark自带的资源调度框架。
1、使用SparkSubmit提交任务的时候(包括Eclipse或者其它开发工具使用new SparkConf()来运行任务的时候),Driver运行在Client;使用SparkShell提交的任务的时候,Driver是运行在Master上
2、使用SparkSubmit提交任务的时候,使用本地的Client类的main函数来创建sparkcontext并初始化它;