美文网首页
Spark-部署模式

Spark-部署模式

作者: 布莱安托 | 来源:发表于2020-07-06 19:55 被阅读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的运行方式:

  • --master MASTER_URL:决定任务使用哪种集群处理
  • --deploy-mode DEPLOY_MODE:决定Driver的运行方式,可选值为client或cluster

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方法。

相关文章

  • Spark-部署模式

    Spark部署模式 Spark支持三种集群管理器(Cluster Manager),分别为: Standalone...

  • Spark-运行模式

    Local模式 Local模式就是运行在一台计算机上的模式,通常用于在本地机器联系和测试,它可以通过如下方式设置M...

  • 【spark-部署】spark集群搭建

    前提 1、hadoop环境 2、安装Scala(类似Java安装) 部署 1、解压、重命名 2、进入安装包的con...

  • 部署步骤

    部署 Collector 单机模式 集群模式 部署 webui server,doc 部署 Java Agent,...

  • spark-天池O2O竞赛

    地址转移到 : spark-天池O2O竞赛

  • Redis集群部署

    Redis集群部署 Redis集群有多种部署模式,包括主从模式、哨兵模式、集群模式 主从模式   主从模式可以是一...

  • 基于 Docker 安装 Zookeeper

    概述 Zookeeper 部署有三种方式,单机模式、集群模式、伪集群模式,以下采用 Docker 的方式部署 单机...

  • vertx架构

    对于部署标准模式verticle,vertx的架构如下: 对于部署worker模式verticle,vertx的架...

  • Flink 集群与部署

    部署一个 Flink 集群,首先需要根据自己的实际情况选择适合自己的部署模式和部署平台 1.1 部署模式主要根据以...

  • Hive 入门

    Hive官网 Hive概述 Hive 的底层执行引擎有 :MapReduce,Tez,Spark- Hive on...

网友评论

      本文标题:Spark-部署模式

      本文链接:https://www.haomeiwen.com/subject/jpbgqktx.html