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调度。
相关推荐
AAA修煤气灶刘哥9 小时前
别让Redis「歪脖子」!一次搞定数据倾斜与请求倾斜的捉妖记
redis·分布式·后端
阿里云大数据AI技术13 小时前
大数据公有云市场第一,阿里云占比47%!
大数据
Lx35218 小时前
Hadoop容错机制深度解析:保障作业稳定运行
大数据·hadoop
Aomnitrix21 小时前
知识管理新范式——cpolar+Wiki.js打造企业级分布式知识库
开发语言·javascript·分布式
程序消消乐21 小时前
Kafka 入门指南:从 0 到 1 构建你的 Kafka 知识基础入门体系
分布式·kafka
智能化咨询21 小时前
Kafka架构:构建高吞吐量分布式消息系统的艺术——进阶优化与行业实践
分布式·架构·kafka
Chasing__Dreams21 小时前
kafka--基础知识点--5.2--最多一次、至少一次、精确一次
分布式·kafka
计算机毕业设计木哥1 天前
计算机毕设选题推荐:基于Java+SpringBoot物品租赁管理系统【源码+文档+调试】
java·vue.js·spring boot·mysql·spark·毕业设计·课程设计
T06205141 天前
工具变量-5G试点城市DID数据(2014-2025年
大数据