Spark 的运行模式(--master) 和 部署方式(--deploy-mode)

Spark 的 运行模式(--master 和 部署方式(--deploy-mode,两者的核心区别在于 资源调度范围 和 Driver 进程的位置

一、核心概念对比

维度--master(运行模式)--deploy-mode(部署方式)
作用指定 Spark 应用在哪里运行(单机 / 集群 / 云平台)。指定 Driver 进程的运行位置(本地客户端 / 集群节点)。
选项范围- 单机:local / local[N] / local[*]
- 集群:yarn / spark://host:port / mesos
仅当 --master 为 集群模式 时有效:
client(客户端部署)
cluster(集群部署)
是否必填是(决定应用的运行环境)。否(默认值:client,仅在集群模式下需显式指定)。

二、--master 运行模式详解

1. 单机模式(Local Mode)

适用场景:开发调试、本地测试(无需真实集群资源)。

  • local
    • 单线程运行,所有任务在一个线程中串行执行(无并行)。
    • 示例--master local
  • local[N]
    • 使用 N 个线程 模拟集群中的 Executor,并行执行任务(N 通常为 CPU 核心数)。
    • 示例--master local[2](2 个线程并行)。
  • local[*]
    • 使用 所有可用 CPU 核心 线程(自动获取本地 CPU 核数)。

特点

  • 无需启动集群服务,直接在本地 JVM 中运行。
  • Driver 和 Executor 都在同一个进程内,适合验证代码逻辑。
2. 集群模式(Cluster Mode)

适用场景:生产环境(需调度真实集群资源)。
常见集群模式包括:

  • yarn:运行在 Hadoop YARN 集群上(最常用的企业级方案)。
  • spark://host:port:运行在 Spark 自带的独立集群(Standalone Cluster)。
  • mesos:运行在 Mesos 集群上(较少用)。

特点

  • 需要提前启动集群服务(如 YARN 的 ResourceManager、Spark Standalone 的 Master 节点)。
  • 资源由集群统一管理,支持多应用并发运行。

三、--deploy-mode 部署方式详解(仅集群模式有效)

当 --master 设置为集群模式(如 yarn 或 spark://...)时,需通过 --deploy-mode 指定 Driver 进程的位置

1. client 部署(默认)
  • Driver 运行位置:提交任务的客户端节点(如你本地的终端或服务器)。

                                        Driver 进程运行在提交作业的客户端机器上

  • 适用场景
    • 交互式任务(如 Spark Shell)或需要实时查看日志的调试场景。
    • Driver 需要与客户端进行交互(例如接收用户输入)。
  • 优缺点
    • 优点:日志直接输出到客户端,方便调试。
    • 缺点:若客户端断开连接,任务会终止;Driver 占用客户端资源。

示例(YARN 集群 + client 部署):

spark-submit --master yarn --deploy-mode client ...
2. cluster 部署
  • Driver 运行位置:集群内部的某个节点(由集群调度分配)。

                                     Driver 进程运行在集群的某个 Worker 节点上。

  • 适用场景:生产环境的长时间运行任务(如定时批处理)。
  • 优缺点
    • 优点:任务提交后客户端可断开连接,Driver 独立运行在集群中,稳定性高。
    • 缺点:日志需通过集群命令(如 yarn logs)查看,调试不如 client 方便。

示例(YARN 集群 + cluster 部署):

spark-submit --master yarn --deploy-mode cluster ...

四、经典场景搭配

场景--master 配置--deploy-mode 配置说明
本地调试local[2]无需指定(单机模式不生效)使用 2 个线程模拟并行,直接在本地运行,日志打印到终端。
YARN 集群调试(需看日志)yarnclientDriver 运行在提交任务的客户端(如服务器),日志实时输出到终端。
YARN 集群生产任务yarnclusterDriver 运行在集群节点,任务提交后客户端可断开,适合无人值守任务。
Spark 独立集群任务spark://master-host:7077cluster(推荐)Driver 在集群内部,资源由 Spark Standalone 管理。

五、常见误区

  1. 单机模式下无需 --deploy-mode

    • 单机模式(local)中,Driver 和 Executor 都在本地,--deploy-mode 无效,指定会报错。
  2. 集群模式必须选 deploy-mode

    • 若 --master 是 yarn 或 spark://...,必须显式指定 --deploy-mode client 或 cluster(默认是 client,但生产环境建议显式写 cluster)。
  3. local 不是集群

    • local 模式是 伪分布式(模拟集群行为),实际没有真正的集群节点,仅用于开发测试。

总结记忆法

  • --master 决定 “在哪跑”:选本地(local)或集群(yarn/spark://...)。
  • --deploy-mode 决定 “Driver 在哪”:集群模式下,选客户端(client)或集群内(cluster)。
  • 开发调试用 local 或 yarn client生产任务用 yarn cluster 或 spark://... cluster

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/83711.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sqli—labs第八关——布尔盲注

一:确定注入类型 按照我们之前的步骤来 输入 ?id1 and 11-- ?id1 and 12-- 界面正常 第二行界面异常空白 所以注入类型为单引号闭合型 二: 布尔盲注 1.判断是否使用条件 (1):存在注入但不会直接显示查询结果 …

ARP 原理总结

🌐 一、ARP 原理总结 ARP(Address Resolution Protocol)是用于通过 IP 地址解析 MAC 地址的协议,工作在 链路层 与 网络层之间(OSI 模型的第三层与第二层之间)。 🔁 ARP通信过程: …

SpringCloud——EureKa

目录 1.前言 1.微服务拆分及远程调用 3.EureKa注册中心 远程调用的问题 eureka原理 搭建EureKaServer 服务注册 服务发现 1.前言 分布式架构:根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为服务。 优点: 降…

机顶盒刷机笔记

疑难杂症解决 hitool线刷网口不通tftp超时--》关闭防火墙cm201-2卡刷所有包提示失败abort install--》找个卡刷包只刷fastboot分区再卡刷就能通过了(cm201救砖包 (M8273版子)) 刷机工具 海兔烧录工具HiTool-STB-5.3.12工具,需要…

Linux动静态库制作与原理

什么是库 库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。 本质上来说库是一种可执行代码的二进制形式,可以被操作系统…

如何通过小智AI制作会说话的机器人玩具?

一、硬件准备与组装 1. 核心硬件选择 主控芯片:选择支持无线网络连接、音频处理和可编程接口的嵌入式开发板 音频模块:配备拾音麦克风与小型扬声器,确保语音输入/输出功能 显示模块:选择适配的交互显示屏用于可视化反馈 扩展模…

如何控制邮件发送频率避免打扰用户

一、用户行为 监测用户与邮件的互动数据,如打开率、点击率下滑或退订申请增多,可能是发送频率过高的警示信号。利用邮件营销平台的分析工具,识别这些指标的变动趋势,为调整提供依据。 二、行业特性与受众差异 不同行业用户对邮…

定积分的“偶倍奇零”性质及其使用条件

定积分的“偶倍奇零”性质是针对对称区间上的奇偶函数积分的重要简化方法。以下是其核心内容和应用要点: ​一、基本性质 ​偶函数(偶倍)​ 若 f(x) 在 [−a,a] 上为偶函数(即 f(−x)f(x)),则: …

如何在 Windows 11 或 10 上安装 Fliqlo 时钟屏保

了解如何在 Windows 11 或 10 上安装 Fliqlo,为您的 PC 或笔记本电脑屏幕添加一个翻转时钟屏保以显示时间。 Fliqlo 是一款适用于 Windows 和 macOS 平台的免费时钟屏保。它也适用于移动设备,但仅限于 iPhone 和 iPad。Fliqlo 的主要功能是在用户不活动时在 PC 或笔记本电脑…

【C/C++】C++并发编程:std::async与std::thread深度对比

文章目录 C并发编程:std::async与std::thread深度对比1 核心设计目的以及区别2 详细对比分析3 代码对比示例4 适用场景建议5 总结 C并发编程:std::async与std::thread深度对比 在 C 中,std::async 和 std::thread 都是用于并发编程的工具&am…

Axure疑难杂症:垂直菜单展开与收回(4大核心问题与专家级解决方案)

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢!如有帮助请订阅专栏! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 课程主题:垂直菜单展开与收回 主要内容:超长菜单实现、展开与收回bug解释、Axure9版本限制等问题解…

ASIC和FPGA,到底应该选择哪个?

ASIC和FPGA各有优缺点。 ASIC针对特定需求,具有高性能、低功耗和低成本(在大规模量产时);但设计周期长、成本高、风险大。FPGA则适合快速原型验证和中小批量应用,开发周期短,灵活性高,适合初创企…

DAY 30 模块和库的导入

知识点回顾: 1.导入官方库的三种手段 2.导入自定义库/模块的方式 3.导入库/模块的核心逻辑:找到根目录(python解释器的目录和终端的目录不一致) 作业:自己新建几个不同路径文件尝试下如何导入 import math # 导入…

MyBatis:动态SQL

文章目录 动态SQLif标签trim标签where标签set标签foreach标签include标签和sql标签 Mybatis动态SQL的官方文档: https://mybatis.net.cn/dynamic-sql.html 动态SQL 动态SQL是 MyBatis的强大特性之一,如果是使用JDBC根据不同条件拼接sql很麻烦,例如拼接…

Java - Junit框架

单元测试:针对最小的功能单元(方法),编写测试代码对该功能进行正确性测试。 Junit:Java语言实现的单元测试框架,很多开发工具已经集成了Junit框架,如IDEA。 优点 编写的测试代码很灵活,可以指某个测试方法…

学生成绩管理系统Java实战(Spring Boot+MyBatis Plus)

文章目录 一、系统需求分析(避坑指南)二、技术选型(2024新版)三、数据库设计(三大核心表)1. 学生表(student)2. 课程表(course)3. 成绩表(score&a…

MySQL安装实战指南:Mac、Windows与Docker全平台详解

MySQL作为世界上最流行的开源关系型数据库,是每位开发者必须掌握的基础技能。本指南将手把手带你完成三大平台的MySQL安装,从下载到配置,每个步骤都配有详细说明和截图,特别适合新手学习。 一、Mac系统安装MySQL 1.1 通过Homebre…

多模态大语言模型arxiv论文略读(七十九)

AIM: Let Any Multi-modal Large Language Models Embrace Efficient In-Context Learning ➡️ 论文标题:AIM: Let Any Multi-modal Large Language Models Embrace Efficient In-Context Learning ➡️ 论文作者:Jun Gao, Qian Qiao, Ziqiang Cao, Zi…

[Harmony]封装一个可视化的数据持久化工具

1.添加权限 在module.json5文件中添加权限 // 声明应用需要请求的权限列表 "requestPermissions": [{"name": "ohos.permission.DISTRIBUTED_DATASYNC", // 权限名称:分布式数据同步权限"reason": "$string:distrib…

利用html制作简历网页和求职信息网页

前言 大家好,我是maybe。今天下午初步学习了html的基础知识。做了两个小网页,一个网页是简历网页,一个网页是求职信息填写网页。跟大家分享一波~ 说明:我不打算上传图片。所以如果有朋友按照我的代码运行网页,会出现一个没有图片…