【Spark与SQL网关(1)】Spark 提交模式与 Spark Thrift Server:到底在“提交”什么
很多 Spark 使用者对两件事一直模糊一是client / cluster到底差在哪二是 STSSpark Thrift Server算不算一种提交模式。这篇文章只讲一件事一次提交Driver 是怎么被启动的STS 又在这个模型里扮演什么角色。一、Spark 提交模式本质上只回答一个问题Spark 里真正干活的有两类 JVMDriver大脑SQL 解析、Stage 拆分、Task 调度这里是最多二开和改造的地方Executor劳工读数据、计算、写数据所谓提交模式不决定“用不用 Spark”只决定Driver JVM 在哪台机器上出生。Driver 是一个进程二、client 模式spark-submit 自己就是 Driver1️⃣ 从敲命令开始spark-submit\--masteryarn\--deploy-mode client\com.xxx.MySparkApp这条命令做了什么启动一个 JVM进程名是SparkSubmit在这个 JVM 里通过反射调用你的MySparkApp.main()main()里new SparkSession()→new SparkContext()到这一步Driver 已经存在了而且就是 spark-submit 这个进程。没有任何远程启动 Driver 的动作。2️⃣ Driver 向 YARN 要资源SparkContext初始化时向 ResourceManager 申请第一个 Container这个 Container 里跑的是ApplicationMasterAM在 client 模式下AM 只干一件事帮 Driver 申请 Executor。3️⃣ Executor 反向连 DriverExecutor 启动后通过 Driver 的 RPC 地址连回来Executor ──RPC──▶ Driverspark-submit 所在机器Driver 负责Driver就像大脑而且当计算任务比较多时任务就会比较重切 Stage下发 Task收集结果AM 全程不参与计算。client 模式一句话总结Driver 在提交机上提交机不关机App 就活着。三、cluster 模式Driver 被塞进 YARN 里1️⃣ 提交机只做“投递”spark-submit\--masteryarn\--deploy-mode cluster\com.xxx.MySparkApp这次spark-submit 进程只把 jar 配置上传到 HDFS向 RM 说“起个 App”然后自己可以立刻退出2️⃣ 第一个 Container 里AM DriverYARN 分配第一个 Container启动的是org.apache.spark.deploy.yarn.YarnClusterApplication在这个 JVM 里创建 SparkContext同时扮演 ApplicationMaster自己调度自己也就是说Driver 的父进程是 YARN不是 spark-submit。3️⃣ Executor 仍然只认 DriverExecutor 启动后连接的是AM Container 里的 Driver RPC 端口。架构变成spark-submit投递员 ↓ YARN ContainerDriver AM ↓ Executorcluster 模式一句话总结Driver 在集群里提交机可以随时走人。四、两种模式的本质差异只看这一句模式Driver 在哪提交机作用client提交机启动 DriverclusterYARN Container只负责提交其他所有差异——日志、稳定性、端口、是否适合生产——都是这个事实的副作用。五、Spark Thrift Server 是什么1️⃣ STS 不是新东西启动 STSstart-thriftserver.sh等价于spark-submit\org.apache.spark.sql.hive.thriftserver.HiveThriftServer2STS 本身就是一个 Spark Application。2️⃣ 它为什么能接受 SQLHiveThriftServer2的main()做了三件事创建SparkSession启动一个 Thrift RPC 服务默认 10000 端口永远不退出BI 工具通过 JDBC 连的是jdbc:hive2://sts-host:10000这个端口后面就是 Driver 自己。 Driver被绑定到了这个Thrift RPC 服务中3️⃣ 每一条 SQL 是什么BI 发 SQL → Driver 收到 → 编译成 SparkPlan →切 Stage → 调度 Task没有新的 Application没有新的 spark-submit。只是 Driver 里多了一个 Job。4️⃣ STS 用的是哪种提交模式生产里几乎都是start-thriftserver.sh--masteryarn--deploy-mode client也就是Driver 在 STS 机器上对外暴露 JDBCExecutor 在 YARN / K8s 上所以 STS 不是第三种提交模式而是一个长期运行的 client-mode Spark Application对外伪装成数据库。六、为什么这个架构容易出问题Driver的职责太重了因为 client 模式的所有特征被“常驻”放大了Driver 单点一个 JVM 服务所有查询结果集先回 Driver再给 JDBC 客户端一个慢 SQL 占满 Driver 内存 → 所有查询一起卡权限、资源、隔离都只能在这个 Driver 内解决STS 的“像数据库”其实是错觉。它更像一个永远不退出的 spark-submit坐在那里等 SQL。七、一句话串起来clientDriver 在提交机跑完就死clusterDriver 在集群提交机可以走STSDriver 在提交机但永远不 exit专门接 JDBC八、如果你只记住一张图JDBC / spark-submit | | RPC v Driver | 调度指令 | Executorclient / STSDriver 在图左边clusterDriver 在图中间补充视角面试/架构用Spark 只有两种提交模式。STS 是“client 模式的常驻服务化”Kyuubi 则是把 STS 拆成“无状态网关 按需 client-mode Engine”。理解到这一步你再看 STS 为什么被换掉就不是“新工具更好”而是“架构假设变了”。

相关新闻

2026年AI伴学机选购指南:初中生适合哪款学习机?

2026年AI伴学机选购指南:初中生适合哪款学习机?

初中阶段是学业压力骤增的关键时期,科目从三门增加到九门,作业量翻倍,知识点难度大幅提升。很多家长发现,自己已经辅导不了孩子的数理化难题,而孩子写作业拖拉、遇到难题就卡壳、刷了很多题成绩却不见起色——这些问题…

2026/10/17 0:03:51 阅读更多 →
基于Dify构建建筑设计AI助手:从知识库到工作流的实战指南

基于Dify构建建筑设计AI助手:从知识库到工作流的实战指南

1. 为什么用 Dify 做建筑设计助手,而不是直接问大模型 如果你在建筑设计、室内设计或者相关领域工作,大概率已经试过直接问 ChatGPT、文心一言这类通用大模型一些专业问题。结果往往是:回答很笼统,没法结合你的具体项目数据&#…

2026/10/17 0:24:28 阅读更多 →
frp内网穿透实战:从原理到部署,实现远程访问与端口映射

frp内网穿透实战:从原理到部署,实现远程访问与端口映射

1. 项目概述:为什么我们需要内网穿透? 如果你尝试过在家里搭建一个网站、一个文件服务器,或者想远程访问公司电脑的桌面,大概率会遇到一个头疼的问题:你的设备处在一个由路由器构建的局域网(内网&#xff0…

2026/10/17 0:24:42 阅读更多 →

最新新闻

国庆AI行业盘点:模型更新、开源生态与智能体落地加速

国庆AI行业盘点:模型更新、开源生态与智能体落地加速

国庆长假这两天,AI圈跟过年似的。10月1日到10月8日,前后八天,不断有模型更新、开源仓库爆点、智能体应用密集落地。作为一个长期跟踪这条赛道的人,我几乎每天都要刷好几遍测试榜单和社区讨论串,很多信息还没来得及沉淀…

2026/10/18 5:37:42 阅读更多 →
程序员必备20个网站:技术阅读、刷题、接单与效率工具盘点

程序员必备20个网站:技术阅读、刷题、接单与效率工具盘点

程序员必备网站这个老话题,几乎每隔几个月就会被重新拿出来聊一轮。技术、接单、刷题这三类网站,每个开发者的收藏夹里都躺着不止一个,但真到要用的时候,很多人会发现:收藏了 300 个网站,能稳定打开、准时解…

2026/10/18 5:37:42 阅读更多 →
全大写提示词触发AI风控?解析Claude互审封禁真相与安全写法

全大写提示词触发AI风控?解析Claude互审封禁真相与安全写法

有意思。“让Claude管Claude”本身没问题,问题是这句提示词是用全大写敲出来的。我是在一个技术讨论群里看到这件事的:某人做了个自动化流程,让一个Claude会话去审核另一个Claude会话生成的文案,这本来是个很常见的质检思路&#…

2026/10/18 5:37:42 阅读更多 →
Image GPS Editor实战:照片GPS数据的读取、修改与批量处理

Image GPS Editor实战:照片GPS数据的读取、修改与批量处理

前阵子帮朋友整理一趟长途自驾的素材,几百张照片导进电脑,结果发现相机里明明开了GPS记录,出来的照片却有一大半坐标信息是空的。另一批用手机拍的照片倒是带位置,但其中有几张因为当时在船上漂着,定位偏到了海里。用看…

2026/10/18 5:37:42 阅读更多 →
变量之路:理清编译与链接中的符号、地址与重定位机制

变量之路:理清编译与链接中的符号、地址与重定位机制

先问一个问题:你在 IDE 里写了int counter 0;,点一下运行按钮,程序跑起来了。可是那个叫counter的变量,它的地址到底是谁给它的?它为什么能从一个名字变成一个真实存在于内存里的地址?我在带新人的时候发现…

2026/10/18 5:37:42 阅读更多 →
律所案件管理系统设计与落地:角色权限、流程引擎与文书协同实践

律所案件管理系统设计与落地:角色权限、流程引擎与文书协同实践

1. 这个系统到底在解决什么问题做律师的朋友应该都有过这种体验:一个案子从收到材料到最终归档,中间要经过立案、排期、取证、文书起草、审核、盖章、送达、开庭、归档这么一串流程。传统做法是什么?微信群接龙、Excel表格、共享文件夹、Outl…

2026/10/18 5:36:42 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →