Spark集群模式&Spark程序提交
1. 集群管理器
Spark当前支持三种集群管理方式
Standalone—Spark自带的一种集群管理方式,易于构建集群。
Apache Mesos—通用的集群管理,可以在其上运行Hadoop MapReduce和一些服务应用。
Hadoop YARN—Hadoop2中的资源管理器。
Tip1: 在集群不是特别大,并且没有mapReduce和Spark同时运行的需求的情况下,用Standalone模式效率最高。
Tip2: Spark可以在应用间(通过集群管理器)和应用中(如果一个SparkContext中有多项计算任务)进行资源调度。
2. 组件
Spark应用程序在集群上以一系列进程集合运行,通过程序(driver program)中的SparkContext对象进行卸掉。SparkContext可以与多种集群管理器(Cluster Manager)相连接,这些集群管理器可以在应用程序间分配计算资源。连到集群管理器后,Spark在急群众查找executor节点,这些节点执行运算与数据的存储。用户的应用程序(以JAR文件的形式传给SparkContext)被发送到executors。最后SparkContext发送任务tasks到executors进行执行。
Tip1: 每个Executor中以线程池的方式并行运行多个Task。意味着是应用程序之间在调度方面(每个driver调度自身的任务)和执行方面(来自不同的任务在不同的JVM上执行)相互隔离,同时,数据无法在不同的应用程序(SparkContext)之间共享,除非数据被写入到额外的存储系统。
Tip2: Spark对于底层集群管理系统来说是不可知的。只要它