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

news2024/11/27 4:32:31

  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

 

 

 

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

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

相关文章

技巧 Win10电脑打开SMB协议共享文件,手机端查看

一. 打开 SMB1.0/CIFS文件共享支持 ⏹如下图所示,打开SMB1.0/CIFS文件共享支持 二. 开启网络发现 ⏹开启网络发现,确保共享的文件能在局域网内被发现 三. 共享文件夹到局域网 ⏹根据需要勾选需要共享的文件夹,共享到局域网 四. 共享文件查…

2024.3.26学习总结

一,正则匹配 正则匹配是用来搜索,匹配,替换的一种字符串模式,使用正则匹配可以让搜索匹配的语句更加简洁,在php中会使用一些函数来处理正则匹配 常用的语法: 字符类 [abc]: 匹配单个字符a、b或c[^abc]: 匹…

java的抽象类和接口

抽象类: abstract,可以用此关键字修饰类和方法 abstract修饰类就是抽象类,修饰方法就是抽象方法 抽象类的注意事项,特点:抽象类不一定有抽象方法,但有抽象方法的类一定是抽象类 类该有的成员(成员变量&…

阿里云ECS经济型e实例,性价比超高的入门级云服务器!

阿里云服务器ECS经济型e系列是阿里云面向个人开发者、学生、小微企业,在中小型网站建设、开发测试、轻量级应用等场景推出的全新入门级云服务器,CPU处理器采用Intel Xeon Platinum架构处理器,支持1:1、1:2、1:4多种处理器内存配比&#xff0c…

在A中删除既在B表中出现又在C表中出现的元素

方法一(感觉有点取巧,不太推荐,但是实现简单): 算法思想:保留La的头节点,并用pcur指针指向La链中的第一个结点,通过pcur指针遍历La中的每一个元素,并判断该元素是否在Lb和Lc链中出现…

腾讯云2核4G服务器优惠价格165元一年,限制500GB月流量

腾讯云轻量2核4G5M服务器租用价格165元1年、252元15个月、三年900元,配置为轻量2核4G5M、5M带宽、60GB SSD盘、500GB月流量、上海/广州/北京,腾讯云优惠活动 yunfuwuqiba.com/go/txy 腾讯云轻量2核4G5M服务器租用价格 腾讯云:轻量应用服务器1…

一篇搞定AVL树+旋转【附图详解旋转思想】

🎉个人名片: 🐼作者简介:一名乐于分享在学习道路上收获的大二在校生 🙈个人主页🎉:GOTXX 🐼个人WeChat:ILXOXVJE 🐼本文由GOTXX原创,首发CSDN&…

java AIO为什么用的并不多

Java AIO的本质是什么 原文:https://blog.csdn.net/hellojackjiang2011/article/details/131322757?spm1001.2101.3001.6650.1&utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-131322757-blog-103915337.235%5Ev43%5Epc_blo…

鸿蒙OS(ArkTS) 案例:【使用http网络请求框架加载验证码】

需求:加载验证码;1.下载验证码图像文件;2.获取header里面验证码ID 踩坑--踩坑--踩坑 根据文档使用 request.downloadFile 请求,官方示例: // pages/xxx.ets // 将网络资源文件下载到应用文件目录并读取一段内容 import common …

微信小程序开发【从入门到精通】——页面导航

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

【面试专题】JVM相关

1.为什么需要JVM,不要JVM可以吗? 1.JVM可以帮助我们屏蔽底层的操作系统 一次编译,到处运行 2.JVM可以运行Class文件 2.JDK,JRE以及JVM的关系 3.我们的编译器到底干了什么事? 仅仅是将我们的 .java 文件转换成了 .cl…

帆软报表在arm架构的linux

有朋友遇到一个问题在部署帆软报表时遇到报错。 问 我在 arm架构的linux服务器上部署帆软报表遇到了一个棘手的问题,你有空帮忙看下嘛。 我看后台日志报的错是 需要升级 gcc、libmawt.so ,是系统中缺少Tomcat需要的依赖库,你之前处理过类似…

基于uQRCode封装的前端二维码生成组件实践

在前端开发中,二维码生成已成为一种常见需求。二维码凭借其简洁、方便的特点,被广泛应用于产品推广、信息交互等多个场景。在此背景下,开发一个易于使用且性能优越的二维码生成组件变得至关重要。本文基于uQRCode封装了一个前端二维码生成组件…

详解JAVA程序调优

目录 1.概述 2.命令 2.1.查看JAVA进程 2.2.查看虚拟机状态 2.3.查看线程的情况 3.工具 3.1.jconsole 3.2.jvisualVM 4.实战场景 1.概述 在实际工作中我们难免会遇见程序执行慢、线程死锁等一系列的问题,这时候就需要我们定位具体问题然后来解决问题了。所…

安科瑞路灯安全用电云平台解决方案【电不起火、电不伤人】

背景介绍 近年来 ,随着城市规模的不断扩大 ,路灯事业蓬勃发展。但有的地方因为观念、技术、管理等方面不完善 ,由此引发了一系列安全问题。路灯点多面广 ,一旦漏电就极容易造成严重的人身安全事故。不仅给受害者家庭带来痛苦 &am…

抽象类和接口的简单认识

目录 一、抽象类 1.什么是抽象类 2.抽象类的注意事项 3.抽象类与普通类的对比 二、接口 1.接口的简单使用 2.接口的特性 3.接口的使用案例 4.接口和抽象类的异同 一、抽象类 所谓抽象类,就是更加抽象的类,也就是说,这个类不能具体描…

雷卯有多种接口与电源保护方案

在当今的电子设备中,各种接口和电源保护至关重要。它们不仅关乎设备的正常运行,更直接影响到数据传输的稳定性和设备的安全。雷卯公司以其专业的技术和丰富的经验,为您提供全面的接口与电源保护方案,确保您的系统安全稳定运行。 …

图像分割论文阅读:Automatic Polyp Segmentation via Multi-scale Subtraction Network

这篇论文的主要内容是介绍了一种名为多尺度差值网络(MSNet)的自动息肉分割方法。 1,模型整体结构 整体结构包括编码器,解码器,编码器和解码器之间是多尺度差值模块模块(MSM),以及一…

golang grpc和protobuf的版本降级问题(version4 -> version3)

最后更新于2024年3月28日 10:57:52 简中没查到类似的文章。一点小事闹麻了,搞了一天,特意发出来造福大家。 所谓的版本就是下面这个东西proto.ProtoPackageIsVersion4或者proto.ProtoPackageIsVersion3: 目的 为了适配旧代码&#xff0c…

探索c++:string常用接口 迷雾

个人主页:日刷百题 系列专栏:〖C/C小游戏〗〖Linux〗〖数据结构〗 〖C语言〗 🌎欢迎各位→点赞👍收藏⭐️留言📝 ​ ​ 一、string类 这里我们对string类进行一个简单的总结: string是表示字符串的字…