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

spark任务的提交流程

目录

    • spark任务的提交流程
      • 1. 资源申请与初始化
      • 2. 任务划分与调度
      • 3. 任务执行
      • 4. 资源释放与结果处理
      • 附:关键组件协作示意图
      • 扩展说明

SparkContext介绍

spark任务的提交流程

  1. 用户创建一个 Spark Context
  2. Spark Context 去找 Cluster Manager 申请资源同时说明需要多少 CPU 和内存等资源;
  3. Cluster Manager 根据用户提交时设置的参数(CPU、内存),去找 WorkerNode 并启动 Executor,并介绍 Executor 给Driver;
  4. Driver 会将用户程序划分为不同的 stage每个 stage 会有一组完全相同的 task 来构成。这些 task 会作用于一些待处理的数据和不同的分区,在阶段划分和 task 创建完成后Driver 会向 Executor 发送 task
  5. Executor 在接收到 task 后会下载 task 运行时的依赖准备好 task 的运行环境,然后开始执行 task 并实时将 task 的运行环境传输给 Driver;
  6. Driver 根据收到的 task 的运行情况来进行状态更新,不断的调用 task 来交给 Executor 执行,直到 task 全部执行正确。若超过最大重试次数还没有执行成功,就会停止 task。

1. 资源申请与初始化

  • 用户创建SparkContext(SC),SC向集群管理器(如YARN或Standalone Master)申请资源,指定CPU和内存需求
  • 集群管理器根据参数分配资源:
    • Standalone模式:Master直接管理Worker节点,创建Executor并注册到SC
    • YARN模式:RM创建ApplicationMaster(AM),AM通过NodeManager(NM)申请容器资源启动Executor

2. 任务划分与调度

  • Driver(即SC所在进程)将用户程序解析为DAG图,根据宽依赖(ShuffleDependency)划分Stage
    • 宽依赖触发Shuffle操作,形成ShuffleMapStage
    • 窄依赖合并为ResultStage
  • 每个Stage被拆分为多个Task,每个Task对应一个数据分区的处理逻辑

3. 任务执行

  • Executor接收Task后:
    1. 下载任务依赖的代码和数据
    2. 创建线程池并行执行Task
    3. 实时向Driver汇报执行进度和状态
  • 任务失败时自动重试,超过最大重试次数则作业失败

4. 资源释放与结果处理

  • 所有Task执行完成后:
    • Driver生成最终结果(如写入存储系统)
    • SC向集群管理器释放资源
    • 在YARN模式中,AM会主动注销应用

附:关键组件协作示意图

http://www.xdnf.cn/news/7471.html

相关文章:

  • 不同净化技术(静电 / UV / 湿式)的性能对比研究
  • 刷题记录(5)链表相关操作
  • 门店管理五大痛点解析:如何用数字化系统实现高效运营
  • HomeAssistant开源的智能家居docker快速部署实践笔记(CentOS7)
  • 在tp6模版中加减法
  • 大屏放大缩小自适应
  • 微软的 Windows Linux 子系统现已开源
  • 采集需要登录网站的教程
  • HTTP 协议的发展历程及技术演进
  • 使用亮数据代理IP+Python爬虫批量爬取招聘信息训练面试类AI智能体(附完整源码)
  • jmeter转义unicode变成中文
  • docker- Harbor 配置 HTTPS 协议的私有镜像仓库
  • Rofin PowerLine E Air维护和集成手侧激光Maintenance and Integration Manual
  • 能管理MySQL、Oracle、达梦数据库的桌面管理软件开源了
  • 使用 Java 开发 Android 应用:Kotlin 与 Java 的混合编程
  • 科技赋能·长效治理|无忧树建筑修缮渗漏水长效治理交流会圆满举行!
  • 企业级 Go 多版本环境部署指南-Ubuntu CentOS Rocky全兼容实践20250520
  • C# Task 与 SynchronizationContext
  • 文件包含靶场实现
  • 【移动应用安全】Android系统安全与保护机制
  • WPF技巧-常用的Converter集合(更新ing)
  • Spring Boot-Swagger离线文档(插件方式)
  • 【Redis】跳表结构
  • LSTM语言模型验证代码
  • springboot框架 集成海康ISUP-SDK 并实现 协议透传给设备下发指令!
  • 【鸿蒙开发】安全
  • centos 9 Kickstart + Ansible自动化部署 —— 筑梦之路
  • 软考软件评测师——数据库系统应用
  • spark-shuffle 类型及其对比
  • 新兴技术与安全挑战