Spark运行模式详解

Spark概述

Spark 可以在多种不同的运行模式下执行,每种模式都有其自身的特点和适用场景。

部署Spark集群大体上分为两种模式:单机模式与集群模式。大多数分布式框架都支持单机模式,方便开发者调试框架的运行环境。但是在生产环境中,并不会使用单机模式。

Spark目前支持的部署模式。

  • (1)Local模式:在本地部署单个Spark服务

  • (2)Standalone模式:Spark自带的任务调度模式。(国内不常用)

  • (3)YARN模式:Spark使用Hadoop的YARN组件进行资源与任务调度。 (国内最常用)

  • (4)Mesos模式:Spark使用Mesos平台进行资源与任务的调度。(国内很少用)

1.Local 模式

  • 在本地模式下,Spark 将在单个 JVM 进程中运行,通常用于开发、测试和小规模数据处理。
  • 在本地模式下,Spark 不需要启动集群,而是直接在本地计算机上执行任务。

2.YARN 模式(常用)

  • YARN(Yet Another Resource Negotiator)是 Apache Hadoop 的资源管理器,可以用来在 Hadoop 集群上管理资源和调度任务。

  • Spark 可以作为 YARN 上的一个应用程序运行,在 YARN 模式下,Spark 将利用 YARN 来管理集群资源和调度任务。

在 Spark 中,YARN 模式下有两种常见的运行模式:yarn-client 和 yarn-cluster。它们的主要区别在于 Driver 程序的运行节点。

(1)yarn-client模式

  • yarn-client 模式下,Driver 程序运行在提交 Spark 应用程序的客户端机器上。
  • 这意味着 Driver 程序直接与 YARN ResourceManager 通信,并向其请求资源并启动 ApplicationMaster。
  • 一旦 ApplicationMaster 启动成功,它会协调在 YARN 集群中启动的 Executor 进程,并与它们通信以执行任务。

yarn-client 模式的优点是方便调试和监控,因为 Driver 程序直接运行在客户端机器上,可以直接查看其日志并与其交互。

然而,由于 Driver 程序运行在客户端机器上,它可能会成为性能瓶颈,尤其是当客户端机器的资源有限时。

(2)yarn-cluster 模式:

  • yarn-cluster模式下,Driver 程序运行在 YARN 集群中作为一个独立的应用程序。
  • 当用户提交 Spark 应用程序时,Driver 程序会作为一个 YARN ApplicationMaster 启动在集群中,并由 YARN ResourceManager 分配资源。
  • 一旦 ApplicationMaster 启动成功,它会协调在集群中启动的 Executor 进程,并与它们通信以执行任务。

yarn-cluster 模式的优点是可以更好地利用集群资源,并且 Driver 程序不会成为单点故障。

因为 Driver 程序运行在集群中,所以即使客户端机器宕机也不会影响 Spark 应用程序的执行。

但是,调试和监控会稍微复杂一些,因为 Driver 程序运行在集群中,需要查看集群中的日志和监控信息。

yarn-client 模式适用于调试和监控要求较低、资源较为充足的情况,而 yarn-cluster 模式适用于对资源利用率和容错性要求较高的情况


3.Standalone 模式

  • Spark 的独立模式是一种简单的集群管理器,可以用来在独立的 Spark 集群上运行应用程序。在这种模式下,用户需要手动启动和管理 Spark 集群中的各个组件,如主节点和工作节点。
  • Standalone模式是Spark自带的资源调度引擎,构建一个由Master + Worker构成的Spark集群,Spark运行在集群中。
  • 这个要和Hadoop中的Standalone区别开来。这里的Standalone是指只用Spark来搭建一个集群,不需要借助Hadoop的Yarn和Mesos等其他框架。

4.Apache Mesos 模式:

  • Apache Mesos 是一个通用的集群管理器,可以用来管理多种类型的工作负载,包括 Spark 应用程序。
  • 在 Mesos 模式下,Spark 可以作为 Mesos 上的一个框架运行,利用 Mesos 提供的资源管理和调度功能来运行任务。
  • Spark客户端直接连接Mesos;不需要额外构建Spark集群。国内应用比较少,更多的是运用Yarn调度。
相关推荐
bxlj_jcj41 分钟前
深入Flink核心概念:解锁大数据流处理的奥秘
大数据·flink
云资源服务商43 分钟前
阿里云Flink:开启大数据实时处理新时代
大数据·阿里云·云计算
码不停蹄的玄黓1 小时前
MySQL分布式ID冲突详解:场景、原因与解决方案
数据库·分布式·mysql·id冲突
Aurora_NeAr2 小时前
Spark SQL架构及高级用法
大数据·后端·spark
王小王-1232 小时前
基于Hadoop的公共自行车数据分布式存储和计算平台的设计与实现
大数据·hive·hadoop·分布式·hadoop公共自行车·共享单车大数据分析·hadoop共享单车
数据与人工智能律师2 小时前
数字资产革命中的信任之锚:RWA法律架构的隐形密码
大数据·网络·人工智能·云计算·区块链
Edingbrugh.南空3 小时前
Flink OceanBase CDC 环境配置与验证
大数据·flink·oceanbase
全星0073 小时前
解锁研发高效密码:全星研发项目管理APQP软件的多维助力
大数据·汽车
要开心吖ZSH3 小时前
《Spring 中上下文传递的那些事儿》Part 4:分布式链路追踪 —— Sleuth + Zipkin 实践
java·分布式·spring
幼稚园的山代王4 小时前
RabbitMQ 4.1.1初体验
分布式·rabbitmq·ruby