Spark-部署模式

2020-07-06  本文已影响0人  布莱安托

Spark部署模式

Spark支持三种集群管理器(Cluster Manager),分别为:

  1. Standalone:独立模式,Spark原声的集群管理器,自带完成的服务,可单独部署到一个集群中,无需依赖任何其他资源管理系统。
  2. Apache Mesos:一个强大的分布式资源管理系统,它允许多种不同的框架部署在其上,包括Yarn。
  3. Hadoop Yarn:统一的资源管理机制,在上面可以运行多套计算框架,如MapReduce、Storm、Spark等。Spark根据Driver在集群中的位置不同,分为Yarn Client和Yarn Cluster两种模式。

实际上,除了上述通用的集群管理器之外,Spark内部也提供了一些方便用户测试和学习的简单集群部署模式。

Spark的运行模式取决于传递给SparkContext的MASTER环境变量的值,目前支持的Master URL包括:

Master URL 含义
local 在本地运行,只有一个工作进程,无并行计算能力
local[K] 在本地运行,有K个工作进程
local[*] 在本地运行,工作进程数量等于本地机器的CPU核心数
spark://HOST:PORT 以Standalone模式运行,默认端口为7077.详细文档见Spark standalone cluster
mesos://HOST:PORT 在Mesos集群上运行,Driver进程和Executor进程运行在Mesos集群上,部署模式(deploy mode)为client模式。详细文档见MesosClusterDispatcher
yarn-client 在Yarn集群上运行,Driver进程运行在本地,Executor进程在Yarn集群上,部署模式为client模式。Yarn集群的地址必须在HADOOP_CONF_DIR或YARN_CONF_DIR变量里定义
yarn-cluster 在Yarn集群上运行,Driver进程运行在本地,Executor进程在Yarn集群上,部署模式为cluster模式。Yarn集群的地址必须在HADOOP_CONF_DIR或YARN_CONF_DIR变量里定义

用户在提交任务给Spark处理时,以下两个参数共同决定Spark的运行方式:

Standalone模式

Standalone集群有四个重要组成部分,分别是:

  1. Master:是一个进程,主要负责资源的调度和分配,并进行集群的监控等职责。
  2. Worker:是一个进程,一个Worker运行在集群中的一台服务器上,只要覆辙两个职责:一个是用自己的内存存储RDD的某个或某些分区数据;另一个是启动其他进程和线程,对RDD上的分区进行并行的处理和计算。
  3. Driver:是一个进程,负责运行用户编写的Spark应用程序。
  4. Executor:是一个进程,一个Worker可以运行多个Executor,Executor通过启动多个线程来对RDD的分区数据进行并行计算。

Standalone Client模式

image.png

在Standalone Client模式下,Driver在任务提交的本地机器上运行,Driver启动后想Master注册应用程序,Master根据资源需求找到内部资源至少可以启动一个Executor的所有Worker,然后在这些Worker之间分配Executor,Worker上的Executor启动后会向Driver反向注册,所有的Executor注册完成后Driver开始执行main函数

Standalone Cluster模式

image.png

在Standalone Cluster模式下,任务提交后,Master会找到一个Worker启动Driver进程,Driver启动后向Master注册应用程序,Master根据资源需求找到内部资源至少可以启动一个Executor的所有Worker,然后在这些Worker之间分配Executor,Worker上的Executor启动后会向Driver反向注册,所有的Executor注册完成后Driver开始执行main函数

Yarn模式

Yarn Client模式

image.png

在Yarn Client模式下,Driver在任务提交的本地机器上运行,Driver启动后会和ResourceManager通讯申请启动ApplicationMaster,随后ResourceManager分配Container,在合适的NodeManager上启动ApplicationMaster,此时ApplicationMaster相当于一个ExecutorLauncher,只负责向ResourceManager申请Executor资源。

ResourceManager接到ApplicationMaster的资源申请后分配Container,然后ApplicationMaster在指定的NodeManager上启动Executor,Executor启动后想Driver反向注册,全部注册完成后Driver开始执行用户程序的main方法。

Yarn Cluster模式

image.png

在Yarn Client模式下,任务启动后会和ResourceManager通讯申请启动ApplicationMaster,随后ResourceManager分配Container,在合适的NodeManager上启动ApplicationMaster,此时ApplicationMaster相当于一个Driver。

ResourceManager接到ApplicationMaster的资源申请后分配Container,然后ApplicationMaster在指定的NodeManager上启动Executor,Executor启动后想Driver反向注册,全部注册完成后Driver开始执行用户程序的main方法。

上一篇下一篇

猜你喜欢

热点阅读