spark任务的提交流程

news2025/5/25 1:49:57

目录

    • 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.coloradmin.cn/o/2385016.html

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

相关文章

智慧化工园区安全风险管控平台建设方案(Word)

1 项目概况 1.1 园区概况 1.1.1 XX化工园区简况 1.1.2 企业现状 1.1.3 园区发展方向 1.1.4 园区信息化现状 1.2 项目建设背景 1.2.1 政策背景 1.3 项目建设需求分析 1.3.1 政策需求分析 1.3.2 安全生产监管需求分析 1.3.3 应急协同管理需求分析 1.3.4 工业互联网安…

【uniapp】 iosApp开发xcode原生配置项(iOS平台Capabilities配置)

如果你需要配置诸如:Access Wi-Fi Information 简单地说就是这个地址 ios平台capabilities配置 本来这种配置就是在Xcode的平台中选中即可,他们的信息会存储在XCode工程的.entitlements和Info.plist文件。 按照uniapp文档说的, HBuilderX4.…

MYSQL优化(1)

MYSQL调优强调的是如何提高MYSQL的整体性能,是一套整体方案。根据木桶原理,MYSQL的最终性能取决于系统中性能表现最差的组件。可以这样理解,即使MYSL拥有充足的内存资源,CPU资源,如果外存IO性能低下,那么系…

基于BERT预训练模型(bert_base_chinese)训练中文文本分类任务(AI老师协助编程)

新建项目 创建一个新的虚拟环境 创建新的虚拟环境(大多数时候都需要指定python的版本号才能顺利创建): conda create -n bert_classification python3.9激活虚拟环境: conda activate myenvPS:虚拟环境可以避免权限问题,并隔离…

从数据到智能:openGauss+openEuler Intelligence的RAG架构实战

随着人工智能和大规模语言模型技术的崛起,传统的搜索引擎由于其只能提供简单的关键字匹配结果,已经越来越无法满足用户对于复杂、多样化和上下文相关的知识检索需求。与此相对,RAG(Retrieval-Augmented Generation)技术…

【Linux】初见,基础指令

前言 本文将讲解Linux中最基础的东西-----指令,带大家了解一下Linux中有哪些基础指令,分别有什么作用。 本文中的指令和选项并不全,只介绍较为常用的 pwd指令 语法:pwd 功能:显示当前所在位置(路径&#xf…

什么是实时流数据?核心概念与应用场景解析

在当今数字经济时代,实时流数据正成为企业核心竞争力。金融机构需要实时风控系统在欺诈交易发生的瞬间进行拦截;电商平台需要根据用户实时行为提供个性化推荐;工业物联网需要监控设备状态预防故障。这些场景都要求系统能够“即时感知、即时分…

工业RTOS生态重构:从PLC到“端 - 边 - 云”协同调度

一、引言 在当今数字化浪潮席卷全球的背景下,工业领域正经历着深刻变革。工业自动化作为制造业发展的基石,其技术架构的演进直接关系到生产效率、产品质量以及企业的市场竞争力。传统的PLC(可编程逻辑控制器)架构虽然在工业控制领…

基于开源链动2+1模式AI智能名片S2B2C商城小程序的社群构建与新型消费迎合策略研究

摘要:随着个性化与小众化消费的崛起,消费者消费心理和模式发生巨大变化,社群构建对商家迎合新型消费特点、融入市场经济发展至关重要。开源链动21模式AI智能名片S2B2C商城小程序的出现,为社群构建提供了创新工具。本文探讨该小程序…

高性能RPC框架--Dubbo(五)

Filter: filter过滤器动态拦截请求(request)或响应(response)以转换或使用请求或响应中包含的信息。同时对于filter过滤器不仅适合消费端而且还适合服务提供端。我们可以自定义在什么情况下去使用filter过滤器 Activa…

搭建自己的语音对话系统:开源 S2S 流水线深度解析与实战

网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…

feign调用指定服务ip端口

1 背景 在springcloud开发时候,同时修改了feign接口和调用方的代码,希望直接在某个环境调用修改的代码,而线上的服务又不希望被下线因为需要继续为其他访问页面的用户提供功能后端服务,有时候甚者包含你正在修改的功能。 2 修改…

【深尚想!爱普特APT32F1023H8S6单片机重构智能电机控制新标杆】

在智能家电与健康器械市场爆发的今天,核心驱动技术正成为产品突围的关键。传统电机控制方案面临集成度低、开发周期长、性能瓶颈三大痛点,而爱普特电子带来的APT32F1023H8S6单片机无感三合一方案,正在掀起一场智能电机控制的技术革命。 爆款基…

Unity EventCenter 消息中心的设计与实现

在开发过程中,想要传递信号和数据,就得在不同模块之间实现通信。直接通过单例调用虽然简单,但会导致代码高度耦合,难以维护。消息中心提供了一种松耦合的通信方式:发布者不需要知道谁接收事件,接收者不需要…

MySQL远程连接10060错误:防火墙端口设置指南

问题描述: 如果你通过本机服务器远程连接MySQL,出现10060错误,那可能是你的防火墙的问题 解决: 第一步:查看防火墙规则 通过以下命令查询,看ports是否开放了3306端口,目前只开放了22端口 f…

使用 OpenCV 实现 ArUco 码识别与坐标轴绘制

🎯 使用 OpenCV 实现 ArUco 码识别与坐标轴绘制(含Python源码) Aruco 是一种广泛用于机器人、增强现实(AR)和相机标定的方形标记系统。本文将带你一步一步使用 Python OpenCV 实现图像中多个 ArUco 码的检测与坐标轴…

canal实现mysql数据同步

目录 1、canal下载 2、mysql同步用户创建和授权 3、canal admin安装和启动 4、canal server安装和启动 5、java 端集成监听canal 同步的mysql数据 6、java tcp同步只是其中一种方式,还可以通过kafka、rabbitmq等方式进行数据同步 1、canal下载 canal实现mysq…

易境通专线散拼系统:全方位支持多种专线物流业务!

在全球化电商快速发展的今天,跨境电商物流已成为电商运营中极为重要的环节。为了确保物流效率、降低运输成本,越来越多的电商卖家选择专线物流服务。专线物流作为五大主要跨境电商物流模式之一,通过固定的运输路线和流程,极大提高…

06 如何定义方法,掌握有参无参,有无返回值,调用数组作为参数的方法,方法的重载

1.调用方法 2.掌握有参函数 3.调用数组作为参数 一个例题:数组参数,返回值 方法的重载 两个例题:冒泡排序和九九乘法表的格式学习

使用vscode MSVC CMake进行C++开发和Debug

使用vscode MSVC CMake进行C开发和Debug 前言软件安装安装插件构建debuug方案一debug方案二其他 前言 一般情况下我都是使用visual studio来进行c开发的,但是由于python用的是vscode,所以二者如果统一的话能稍微提高一点效率。 软件安装 需要安装的软…