大数据 - Spark系列《十五》- spark架构

  Spark系列文章:

大数据 - Spark系列《一》- 从Hadoop到Spark:大数据计算引擎的演进-CSDN博客

大数据 - Spark系列《二》- 关于Spark在Idea中的一些常用配置-CSDN博客

大数据 - Spark系列《三》- 加载各种数据源创建RDD-CSDN博客

大数据 - Spark系列《四》- Spark分布式运行原理-CSDN博客

大数据 - Spark系列《五》- Spark常用算子-CSDN博客

大数据 - Spark系列《六》- RDD详解-CSDN博客

大数据 - Spark系列《七》- 分区器详解-CSDN博客

大数据 - Spark系列《八》- 闭包引用-CSDN博客

大数据 - Spark系列《九》- 广播变量-CSDN博客

大数据 - Spark系列《十》- rdd缓存详解-CSDN博客

大数据 - Spark系列《十一》- Spark累加器详解-CSDN博客

大数据 - Spark系列《十二》- 名词术语理解-CSDN博客

大数据 - Spark系列《十三》- spark调度流程(运行过程)-CSDN博客

大数据 - Spark系列《十四》- spark集群部署模式-CSDN博客

目录

15.1 Yarn角色回顾

15.2 Spark运行角色

15.3 Spark的Job任务调度全流程

15.4 Spark的任务提交全流程

15.5 Spark应用程序


15.1 Yarn角色回顾

Yarn主要有四类角色,从2个层面去看:

资源管理层面:

  • 集群资源管理者(Master):ResourceManager

  • 单机资源管理者(Worker):NodeManager

任务计算层面:

  • 单任务管理者(Master):ApplicationMaster

  • 单任务执行者(Worker):Task(容器内计算框架的工作角色)

 

15.2 Spark运行角色

Spark中由4类角色组成了整个spark的运行时环境

资源管理层面:

  • Master:管理整个集群的资源

  • Worker的:管理单个服务器的资源

任务计算层面:

  • Driver:管理单个spark任务在运行的时候的工作

  • Executor(Worker):单个任务运行的时候的一堆工作者,干活的。

 

15.3 Spark的Job任务调度全流程

任务调度流程是指Spark集群中的资源管理器(如YARN或Mesos)将任务分配给可用的执行器(如Spark Worker)的过程。它包括以下步骤:

任务调度流程是任务提交全流程的一个组成部分,任务提交全流程包含了更多的步骤和细节。

Spark的任务,由Driver进行调度,这个工作包含:

  • 逻辑DAG产生

  • 分区DAG产生

  • Task划分

  • 将Task分配成Executor并监控其工作

 

如图,Spark程序的调度流程如图:

  1. 当使用命令行提交Spark任务代码时,首先会运行MAIN函数,创建SparkContext对象(构建DAGScheduler和TaskScheduler)。

  2. 因为Spark中的计算操作是基于RDD算子链进行的,对于转换算子,它只会形成了RDD之间的依赖关系,构建DAG有向无环图,只有在最后调用行动(action)算子时,才会触发job并调度执行。

  3. 执行时,Driver端会将有向无环图提交给DAGScheduler

  4. DAG Scheduler(DAG调度器)会基于DAG图,按照宽窄依赖划分一个个stage.

  5. stage被创建完之后,以stage为单位,将task封装到TaskSet里面。再把TaskSet提交给TaskScheduler

  6. TaskScheduler(Task调度器)将逻辑Task分配到各个Executor上干活,并监控它们。

  7. Worker(Executor),主要就是听从它们的指令干活,并定期被向TaskScheduler汇报它的进度。

 

15.4 Spark的任务提交全流程

任务提交全流程是指将Spark应用程序提交到集群并执行的整个过程,包括任务调度流程以及其他相关步骤:

当我们用命令行提交任务代码后,会执行以下操作

  1. 客户端向资源管理器master发送注册和申请资源的请求,master负责任务资源的分配

  2. Master收到申请资源的请求后,向指定的worker节点发送请求,然后worker节点会开启对应的executor的进程

  3. Executor进程会向driver发送注册请求,然后申请要计算的task

  4. 在driver的内部会执行一些操作,最终都会通过task scheduler提交task到executor进程里去运行

  5. 当所有的task任务在executor进程里面依次运行完成后,drver端会向master发送一个注销请求,

  6. Master收到这个请求后,然后通过对应的worker节点关闭executor进程,最后worker节点上的计算资源就会得到释放

 

15.5 Spark应用程序

一个Spark应用程序包括Job、Stage及Task:

  • 第一:Job是以Action方法为界,遇到一个Action方法则触发一个Job

  • 第二:Stage是Job的自己,以RDD宽依赖(即Shuffle)为界,遇到Shuffle做一次划分

  • 第三:Task是Stage的自己,以并行度(分区数)来衡量,分区数是多少,则有多少个task

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/507101.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数字孪生平台】使用 Three.js 以 3D 形式可视化日本新宿站地图

在本文中,我们将使用日本新宿站的室内地图数据,并使用 Three.js 将其进行 3D 可视化。更多精彩内容尽在数字孪生平台。 使用的数据 这次,我们将使用日本空间信息中心发布的“新宿站室内地图开放数据”的集成版本(ShapeFile&#…

区间预测 | Matlab实现带有置信区间的BP神经网络时间序列未来趋势预测

区间预测 | Matlab实现带有置信区间的BP神经网络时间序列未来趋势预测 目录 区间预测 | Matlab实现带有置信区间的BP神经网络时间序列未来趋势预测预测效果基本介绍研究回顾程序设计参考资料预测效果 基本介绍 BP神经网络(Backpropagation neural network)是一种常用的人工神…

kkFileView SSRF

kkFileView getCorsFile?urlPath SSRF

(负载点电源)18V/16A超小体积封装同步降压内置启动廷时与保护功能

1. 产品特性 ➢ 输入电压范围: 4V~18V ➢ 额定电流: 16A ➢ 峰值效率: 95.5%(VOUT3.3V) ➢ 集成 7.5mΩ/2.5mΩ 金属氧化物半导体场效应管(MOSFET) ➢ 500kHz 高速内部振荡器 ➢ 内置启动…

Vit代码

Vit将纯transformer结构引入到CV的基本任务——图像分类中 VIT 1.输入端适配1.1 图像切分重排1.2构造Patch01.3 positional enbedding ViT 结构的数据流完整模型代码 1.输入端适配 1.1 图像切分重排 图像切分之后进行拉平,Flatten可能导致维度过高,假设…

排序——选择排序(直接选择排序和堆排)

本专栏和大家分享关于排序的算法,其中有插入排(直接插入排序和希尔排序)、选择排序(直接选择排序和堆排)、交换排序(冒泡排序和快速排序)、归并排序以及其他非基于比较的排序 本文与大家分享选择排序 目录 …

Python处理yaml文件

YAML(YAML Ain’t Markup Language)是一种人类可读的数据序列化格式,它与JSON格式类似,但具有更高的可读性。相比JSON,YAML更注重人类可读性,因此在配置文件、数据序列化和交换方面具有一定优势。它支持注释…

AI+云平台|全闪云底座迎战

AI融万物之势席卷而来 人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 行业特点 AI场景中80%以上是小文件,以非结构化数据为…

【Blockchain】GameFi | NFT

Blockchain GameFiGameFi顶级项目TheSandbox:Decentraland:Axie Infinity: NFTNFT是如何工作的同质化和非同质化区块链协议NFT铸币 GameFi GameFi是游戏和金融的组合,它涉及区块链游戏,对玩家提供经济激励&#xff0c…

【学习】如何成为资深的软件测试工程师“大神”?

一个优秀的软件测试工程师不仅需要有深厚的技术知识和经验,还需要有良好的沟通能力、分析能力和问题解决能力。总的来说,一个"大神"一样的软件测试工程师应该是一个全面的技术专家,同时还需要有出色的沟通和问题解决能力&#xff0…

第十三届蓝桥杯国赛真题 Java C 组【原卷】

文章目录 发现宝藏试题 A: 斐波那契与 7试题 B: 小蓝做实验试题 C: 取模试题 D: 内存空间试题 E \mathrm{E} E : 斐波那契数组试题 F: 最大公约数试题 G: 交通信号试题 I: 打折试题 J: 宝石收集 发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂&#x…

nodejs+java+python高校食堂外卖点餐安全检查系统2k3o

开发语言 node.js 框架:Express 前端:Vue.js 数据库:mysql 数据库工具:Navicat 开发软件:VScode本文的研究目标是以高校校园外卖点餐为对象,使其南京某高校校园外卖点餐为目标,使得南京某高校校园外卖点餐…

计算机网络-RIP动态路由协议简介

一、概述 前面我们学习了动态路由协议按照工作机制及算法划分可以分为:距离矢量路由协议DV型和链路状态路由协议LS型。RIP就是典型的距离矢量路由协议,但是实际工作中用得已经比较少了。 距离矢量路由协议DV: RIP 链路状态路由协议LS: OSPF IS-IS 二、RI…

3.2、单选框(Radio)

Radio是单选框组件,通常用于提供相应的用户交互选择项,同一组的Radio中只有一个可以被选中。 创建单选框 该接口用于创建一个单选框,其中 value 是单选框的名称,group 是单选框的所属群组名称。checked 属性可以设置单选框的状态,状态分别为 false 和 true 时,设置为 t…

《极客时间TonyBai go语言第一课》学习笔记

文章目录 前置篇显式组合并发 入门篇Go 包的初始化次序![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/1388d0d1bddd4a37b98eba5fcb41fc4d.png)初始化一个项目 大纲 前置篇 显式 在 C 语言中,下面这段代码可以正常编译并输出正确结果: #i…

备考ICA----Istio实验12---配置双向TLS Istio Ingress Gateway实验

备考ICA----Istio实验12—配置双向TLS Istio Ingress Gateway实验 本实验部分配置延续上个Istio实验11 1. 重新配置secret 重新配置secret使其带有ca证书可以验证客户端证书是否合法 先删除原有secret,再配置新的secret # 删除原tls类型的secret kubectl -n istio-system d…

【C】leetcode力扣—— 141. 环形链表Ⅰ

目录 141. 环形链表 Ⅰ题目解题思路分析暴力求解??快慢指针 代码 141. 环形链表 Ⅰ 题目链接: https://leetcode.cn/problems/linked-list-cycle/description/ 题目 题目 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某…

【MySQL笔记】SELECT COUNT(*) 的时候,加不加where条件有差别吗?

文章目录 前言实验结论 前言 这部分很多帖子都只在问题里罗列下,好像也没详细解答 其实就是跟InnoDB优先走二级索引的优化有关,前面也提到了”优化的前提是查询语句中不包含where条件和group by条件“ 还不太了解这个优化的朋友可以看上一篇帖子 实验 …

【C++程序员的自我修炼】基础语法篇(二)

风力掀天浪打头 只须一笑不须愁 目录 内联函数 概念💞 性质 ⭐ 不建议变量分离 inline的优劣势 inline的局限性 auto关键字 auto的概念💞 auto的使用细则💞 auto不能推导的场景 💞 auto基于范围的for循环💞 指针空值n…

谈谈对CPU IOwait的理解

谈谈对CPU IOwait的理解 %iowait表示在一个采样周期内有百分之几的时间属于以下情况:CPU空闲并且有仍未完成的I/O请求(如果单纯是CPU空闲,但是并没有IO请求,那么这个时间就是CPU的idle时间),两个条件必须同…