spark任务提交
转载:https://jishuin.proginn.com/p/763bfbd3ad3d
前面我们讲过 9张图详解Yarn的工作机制,惊艳阿里面试官,今天就来讲讲提交 Spark 作业的流程。
Spark 有多种部署模式,Standalone、Apache Mesos、Kubernetes、Yarn,但大多数生产环境下,Spark 是与 Yarn 一起使用的,所以今天就讲讲 yarn-cluster 模式。
当然我也见过不带 Hadoop 环境,使用 Standalone 模式的。比如在云上,Hadoop 一般会使用对应的服务,比如 AWS 的 EMR,一方面是费用较高,另一方面是较为笨重,没那么灵活。用 Standalone 模式只需要起几台机器,安装好 Spark 就可以了。
目前大多数还是本地环境,相信学会了 yarn-cluster 模式,其他的你也都会了。
这是以 yarn-cluster 模式提交一个 Spark 任务最简单的命令,计算 Pi(π) 的值
通过 --master
参数以及 --deploy-mode
指定为 yarn-cluster 模式,Driver 将运行在 Yarn 中。
下面则是提交 Spark 作业的流程。
第 1 步:Client 提交 Application 到 ResourceManager。
第 2 步:ResourceManager 分配 container,在对应的 NodeManager 上启动 ApplicationMaster,ApplicationMaster 会再启动 Driver。
第 3 步:Driver 向 ResourceManager 申请 Executor。
第 4 步:ResourceManager 返回 Container 给 Driver。
第 5 步:Driver 在对应的 Container 上启动 Executor。
第 6 步:Executor 向 Driver 反向注册。
第 7 步:Executor 全部注册完,Driver 开始执行 main 函数。
第 8 步:Driver 执行函数时,遇到 action 算子就会触发一个 job,根据宽依赖划分 stage,每个 stage 生成 taskSet,将 task 分发到 Executor 上执行。
第 9 步:Executor 会不断与 Driver 通信,报告任务运行的情况。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南