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调度。
相关文章:
Spark运行模式详解
Spark概述 Spark 可以在多种不同的运行模式下执行,每种模式都有其自身的特点和适用场景。 部署Spark集群大体上分为两种模式:单机模式与集群模式。大多数分布式框架都支持单机模式,方便开发者调试框架的运行环境。但是在生产环境中ÿ…...
vcpkg环境配置
vcpkg 使用linux相关库,设置环境变量VCPKG_ROOT,设置cmake工具链$VCPKG_ROOT/scripts\buildsystems\vcpkg.cmake set VCPKG_DEFAULT_TRIPLETx64-windows .\vcpkg.exe install fftw3 freetype gettext glibmm gtkmm libjpeg-turbo libpng libxmlpp libs…...
python学习:基础语句
目录 条件语句 循环语句 for 循环 while 循环 break continue 条件语句 Python提供了 if、elif、else 来进行逻辑判断。格式如下: Pythonif 判断条件1: 执行语句1... elif 判断条件2: 执行语句2... elif 判断条件3: 执行语句3... else: 执行语句4…...
Nginx限制IP访问详解
在Web服务器管理中,限制某些IP地址访问网站是一个常见的需求。Nginx作为一款高性能的HTTP服务器和反向代理服务器,提供了灵活强大的配置选项来实现这一功能。本文将详细讲解如何在Nginx中限制IP访问,并通过示例代码展示具体操作。 一、Nginx…...
Three.js——二维平面、二维圆、自定义二维图形、立方体、球体、圆柱体、圆环、扭结、多面体、文字
个人简介 👀个人主页: 前端杂货铺 ⚡开源项目: rich-vue3 (基于 Vue3 TS Pinia Element Plus Spring全家桶 MySQL) 🙋♂️学习方向: 主攻前端方向,正逐渐往全干发展 …...
24年湖南教资认定即将开始,别被照片卡审!
24年湖南教资认定即将开始,别被照片卡审!...
数据库(8)——DML数据操作
增添数据 给指定字段添加数据 INSERT INTO 表名 (字段名1,字段名2,...)VALUES(值1,值2...); 没有的添加的字段默认为NULL。 给全部字段添加数据 INSERT INTO 表名 VALUE (值1,值2,....值n); 此时值的顺序对应表中字段的顺序 批量添加数据 INSERT INTO 表名(字段1,…...
Gitee在已有项目基础上创建仓库中遇到的问题和解决
问题一:fatal: remote origin already exists 解释:当前仓库添加了一个名为"origin"的远程仓库配置,此时输入 git remote add origin https://xxx就会提示上面的内容。 解决方案1:移除旧的origin git remote remove origin 解决方案…...
【推荐算法-特征工程】每种item单侧特征,都可产生对应user单侧特征
比如item的平均成单价格,可以分成10个档位,作为一个标签值打在item上, 那么对应user对item的click用户行为,就能产生user-click的10个档位作为特征值 作为user的标签。 比如item的平均点击率,也可以分成比如20个档位…...
一行代码实现UI拖拽的效果
演示 先来看效果吧! 实现方式 1.首先创建一个你想拖动的UI图片 2.创建一个C#的脚本 3.编写控制脚本(代码按我的敲就行) 付上代码片段 public void OnDrag(PointerEventData eventData){transform.position eventData.position;} 4.添加脚…...
【Linux】TCP协议【下一】{三次握手/四次挥手的深度解读==状态变化}
文章目录 本篇知识需要有TCP协议【中】的知识!详情点击👇1.测试一:服务器start函数不定义任何行为(不调用accept)的三次握手状态变化int listen(int sockfd, int backlog);的backlog参数全连接队列当全连接队列已满&am…...
【C语言回顾】编译和链接
前言1. 编译2. 链接结语 上期回顾: 【C语言回顾】文件操作 个人主页:C_GUIQU 归属专栏:【C语言学习】 前言 各位小伙伴大家好!上期小编给大家讲解了C语言中的文件操作,接下来我们讲解一下编译和链接! 1. 编译 预处理…...
2024年5月27日 十二生肖 今日运势
小运播报:2024年5月27日,星期一,农历四月二十 (甲辰年己巳月辛卯日),法定工作日。 红榜生肖:羊、蛇、狗 需要注意:鼠、鸡、龙 喜神方位:西南方 财神方位:…...
【Text2SQL 论文】SeaD:使用 Schema-aware 去噪训练的 end2end 的 Text2SQL
论文:SeaD: End-to-end Text-to-SQL Generation with Schema-aware Denoising ⭐⭐ NAACL 2022, arXiv:2105.07911 本论文提出 SeaD 模型,使用 schema-aware 的去噪方法来训练一个 end2end、seq2seq 的 Transformer 模型来实现 Text2SQL。 一、论文速读…...
python数据分析——apply 1
参考资料:活用pandas库 apply是指把函数同时作用于DataFrame的每一行或每一列。类似于编写一些跨每行或每列的for循环,并同时调用apply函数。 1、函数 函数是对python代码进行分组和复用的一种方法。如果某段代码会被多次使用,并且使用时是需…...
Spring Boot 项目统一异常处理
在 Spring Boot 项目开发中,异常处理是一个非常重要的环节。良好的异常处理不仅能提高应用的健壮性,还能提升用户体验。本文将介绍如何在 Spring Boot 项目中实现统一异常处理。 统一异常处理有以下几个优点: 提高代码可维护性:…...
安卓手机APP开发__网络连接性支持VPN
安卓手机APP开发__网络连接性支持VPN 安卓提供了API给开发者,来创建一个虚拟的私有网络(VPN)的解决方案. 根据这里的介绍,你能知道如何开发和测试你的针对安卓设备的VPN的客户端. 概述 VPN允许设备为了安全地连接网络,而没有物理性的连接在一个网络上. 安卓包括了一个内嵌的…...
Shopee单个商品详情采集
Shopee商品详情页数据采集实战 作为东南亚地区最大的电商平台之一,Shopee拥有超过3亿活跃用户。对于跨境电商企业、市场分析师等角色而言,从Shopee获取商品数据是非常有价值的。本文将介绍如何使用Python程序采集Shopee单个商品详情页数据。 1. 确定采集目标和技术方案 确定…...
深入研究Qt Meta - Object System
目录 先说RTTI 再说QMeta Object System 关于Q_OBJECT 这篇文章我打算研究一下QMetaObject System,也就是Qt自己构建起来的元对象系统。 先说RTTI 啥是RTTI?这是C编程里的一个常见术语,全称是:运行阶段类型识别(Ru…...
web学习笔记(五十八)
目录 1. v-model 双向数据绑定 2. 事件修饰符 3. 路径别名 4. setup语法糖 4.1 语法糖的概念 4.2 setup语法糖 5. 配置代理服务器 1. v-model 双向数据绑定 v-model 双向数据绑定只能使用在表单标签; v-model双向数据绑定原理:采用 Object.de…...
小白友好:MinerU 2.5-1.2B镜像快速部署与常见问题解决
小白友好:MinerU 2.5-1.2B镜像快速部署与常见问题解决 1. 前言:为什么选择MinerU镜像? 在日常工作中,我们经常需要处理各种PDF文档——从技术手册到学术论文,从财务报表到产品说明书。但将这些PDF转换为可编辑的Mark…...
别再手动编译了!用vcpkg在VS2022里一键安装Boost库(Windows 10/11保姆级教程)
现代C开发者的效率革命:用vcpkg在VS2022中极速部署Boost库 如果你还在手动下载、编译、配置Boost库,那么是时候拥抱现代C开发工具链了。作为C标准库的重要补充,Boost提供了超过160个经过严格测试的组件,从智能指针到并发编程&…...
seo网络培训都有哪些就业方向
SEO网络培训的就业方向有哪些? 随着互联网的迅速发展,SEO网络培训成为越来越多人关注的职业选择。SEO(搜索引擎优化)作为数字营销的重要组成部分,已经深深融入了各行各业的运营模式中。SEO网络培训究竟有哪些就业方向…...
解决QQ音乐加密格式转换难题的开源方案:QMCDecode让音频文件自由管理成为可能
解决QQ音乐加密格式转换难题的开源方案:QMCDecode让音频文件自由管理成为可能 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载…...
StructBERT-中文-通用-large实战案例:政府公文语义重复检测与智能归档系统
StructBERT-中文-通用-large实战案例:政府公文语义重复检测与智能归档系统 1. 项目背景与需求 在日常政务工作中,政府机构每天都会产生大量的公文文件。这些文件往往存在内容重复、表述相似的情况,导致信息冗余和存储浪费。传统的人工筛查方…...
YOLOE官版镜像效果展示:YOLOE-v8s模型在低光照场景下的鲁棒分割效果
YOLOE官版镜像效果展示:YOLOE-v8s模型在低光照场景下的鲁棒分割效果 想象一下,深夜的街道监控画面,或者光线昏暗的仓库内部,传统的视觉模型往往“看不清”或“认不准”,导致关键目标漏检或误判。这正是许多实际应用场…...
基于SpringBoot + Vue的人工智能时代个人计算机的安全防护科普系统
文章目录前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论五、项目代码参考六、数据库代码参考七、项目论文示例结语前言 💛博主介绍&#…...
macOS高效配置:OpenClaw与Qwen3.5-9B镜像深度集成指南
macOS高效配置:OpenClaw与Qwen3.5-9B镜像深度集成指南 1. 为什么选择OpenClaw与Qwen3.5-9B组合 去年冬天,当我第一次尝试用AI自动化处理日常工作报告时,发现大多数云端方案要么功能受限,要么隐私性存疑。直到遇见OpenClaw这个能…...
【行列式】
行列式,本质上是一个线性变换对“整体体积(长度/面积/体积的高维推广)”缩放了多少倍的量。它最核心的作用,就是判断这个线性变换有没有把空间“压瘪”,也就是用于恢复原向量的信息是否丢失。 所以它有三个最重要的用途…...
企业级AI Agent Harness工程落地的5个核心步骤与关键里程碑
企业级AI Agent Harness工程落地的5个核心步骤与关键里程碑 开篇:从「大模型玩具」到「生产级生产力工具」的鸿沟 各位技术同仁、架构师、企业数字化负责人,下午好!欢迎来到我的「AI工程化落地指南」专栏——这是我们的第17篇原创深度文章。 过去18个月里,我作为全球TOP3…...
