当前位置: 首页 > news >正文

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调度。
http://www.lryc.cn/news/354351.html

相关文章:

  • vcpkg环境配置
  • python学习:基础语句
  • Nginx限制IP访问详解
  • Three.js——二维平面、二维圆、自定义二维图形、立方体、球体、圆柱体、圆环、扭结、多面体、文字
  • 24年湖南教资认定即将开始,别被照片卡审!
  • 数据库(8)——DML数据操作
  • Gitee在已有项目基础上创建仓库中遇到的问题和解决
  • 【推荐算法-特征工程】每种item单侧特征,都可产生对应user单侧特征
  • 一行代码实现UI拖拽的效果
  • 【Linux】TCP协议【下一】{三次握手/四次挥手的深度解读==状态变化}
  • 【C语言回顾】编译和链接
  • 2024年5月27日 十二生肖 今日运势
  • 【Text2SQL 论文】SeaD:使用 Schema-aware 去噪训练的 end2end 的 Text2SQL
  • python数据分析——apply 1
  • Spring Boot 项目统一异常处理
  • 安卓手机APP开发__网络连接性支持VPN
  • Shopee单个商品详情采集
  • 深入研究Qt Meta - Object System
  • web学习笔记(五十八)
  • 精准安全运维,统信UOS服务器版V20(1070)漏洞修复指南丨年度更新
  • Vue3实战笔记(46)—Vue 3高效开发定制化Dashboard的权威手册
  • MySQL为什么会选错索引
  • kafka调优参考建议 —— 筑梦之路
  • Redis(十三) 事务
  • RK 11.0 多屏模式下修改鼠标进入方式
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • 浅析部署架构中的GZone、RZone和CZone
  • 【全开源】分类记账小程序系统源码(ThinkPHP+FastAdmin+UniApp)
  • Android NDK系列(四)NDK的编译
  • Jenkins--从入门到入土