Spark任务提交流程

devtools/2025/1/23 5:54:22/

在这里插入图片描述

当包含在application master中的spark-driver启动后,会与资源调度平台交互获取其他执行器资源,并通过反向注册通知对应的node节点启动执行容器。此外,还会根据程序的执行规划生成两个非常重要的东西,一个是根据spark任务执行计划生成n个ADG有向无环图,另一个是根据有向无环图生成对应的task set,也可以统称为stage,ADG和taskset由于宽窄依赖以及程序的复杂度从而导致本就是一对多的关系

在执行器启动并接收了taskset后,就意味着任务开始了跑数阶段,每一个taskset可以视为一个弹性数据集,简称rdd集合,不同的taskset之间以中间文件的方式传递数据,在这个过程中往往需要注意数据key的倾斜情况、task的多少导致的文件数是否合理、写入和写出的效率等,对任务的优化也生效于这些环节

不同的key分布、数据集的分区策略和中间文件生成策略会对shuffer的性能造成直接的影响,但并不是所有的teskset之间数据传递时都会发生shuffer,也有单纯的一对一数据交换。而是否发生shuffer取决于当前taskset数据血缘的宽窄与否,或者是你对rdd分区策略是否有干预,通俗的讲就是两个task set传递数据的key是否需要从新排列

应当注意的是,spark的shuffer分为两个阶段,上一个taskset的结束向文件中写数据的阶段叫做shuffer write,下一个taskset的读取叫做shuffer read,而没有发生shffer的taskset在这个流程中叫做inputdata和outputdata,可以在spark的ui上看到相关的消息

从跑数上总体来说,spark-driver内部是依靠了两个调度器,ADG调度器负责生成可用于执行的stage,而stage的调度与监控则由taskset调度器在负责,在所有的stage执行结束后,AM会通过向资源调度框架申请注销自己,来结束任务


http://www.ppmy.cn/devtools/152800.html

相关文章

python基础语句整理

Python是一种广泛使用的高级编程语言,以其简洁易读的语法而著称。以下是Python中的一些基础语句和概念,适合初学者了解: 1. 变量赋值 在Python中,变量用于存储数据值。变量名可以包含字母、数字和下划线,但不能以数字…

flutter入门系列教程<一>:tab组件的灵活妙用

文章目录 说明区分TabBarView组件TabBarViewTabBar实例 需求升级写在中间的tabbar组件封装组件组件说明组件用法示例 常规的tabbar封装常规用法 说明 前提:假设你已初步了解了flutter和dart语言,并且知道怎么创建一个简单的项目; 学习本文后…

代码随想录算法【Day29】

Day29 134. 加油站 暴力法 遍历每一个加油站为起点的情况&#xff0c;进行模拟 class Solution { public:int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {for(int i 0; i < cost.size(); i){ //以谁为起点int rest gas[i] - cos…

HDFS HADOOP分布式文件系统

目录 一、 HDFS概述 1.1 HDFS简介 1.2 HDFS优缺点 1.2.1 优点 1.2.2 缺点 1.3 HDFS组成架构 1.4 HDFS文件块大小 二、HDFS的Shell操作&#xff08;开发重点&#xff09; 2.1 基本语法 2.2 命令大全 2.3 常用命令实操 2.3.1 上传 2.3.2 下载 2.3.3 HDFS直接操作 三、HDFS的API操…

C++|开源日志库log4cpp和glog

文章目录 log4cpp 和 glog对比1. **功能对比**2. **易用性和配置**3. **性能**4. **线程安全**5. **日志输出**6. **功能扩展**7. **适用场景**8. **总结** 其它开源C日志库1. **spdlog**2. **easylogging**3. **Boost.Log**4. **loguru**5. **Poco Logging**6. **Qt Logging (…

rocketmq-product-DefaultMQProducer启动流程

product线程分析 使用arthas如下 MQClientFactoryScheduledThread 定时器任务&#xff0c;详情查看这篇文章Rocketmq 探索MQClientFactoryScheduledThread线程工作PullMessageService 该线程专为消息consumer服务&#xff0c;product没用RebalanceService 该线程专为消息con…

MySQL 入门大全:运算符

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

spring cloud之gateway和JWT回顾

最开始学习时&#xff0c;没怎么用&#xff0c;只知道它是网关&#xff0c;当时因为经常使用Nginx做网关&#xff0c;慢慢就淡忘了&#xff0c;最近为了代码整合性&#xff0c;就使用它&#xff0c;非常棒。关于JWT以前也使用&#xff0c;后面调用基本以第三方接口开发的比较多…