PySpark基础入门(5):Spark 内核调度

news2024/9/23 13:26:42

目录

Spark 内核调度

DAG

内存迭代计算

Spark并行度

Spark任务调度流程

Spark 内核调度

Spark任务调度:如何组织任务去处理RDD中每个分区的数据,根据RDD的依赖关系构建DAG基于DAG划分Stage将每个Stage中的任务发到指定节点运行。基于Spark的任务调度原理,可以合理规划资源利用,做到尽可能用最少的资源高效地完成任务计算

DAG

有向无环图,代表的是spark任务的执行流程图;

示例:

DAG图的作用:标识代码的逻辑运行流程;

DAG图的产生:一个action算子会将其前面一串的RDD依赖关系执行,也就是说一个action会产生一个DAG图

Job和Action的关系

1个action会产生一个DAG,而一个DAG会在程序运行中产生一个Job;

所以 1action=1DAG=1Job

在一个Application中,可以有多个Job,每一个Job内含一个DAG,同时每一个Job都是由一个Action产生的

DAG和分区之间的关联

DAG是Spark代码的逻辑执行图,其最终作用是为了构建物理上的Spark详细执行计划;

由于Spark是分布式执行的,所以DAG与分区也有关联;带有分区交互的DAG是在程序运行之后由spark决定的

DAG的宽窄依赖和阶段划分

窄依赖:父RDD的一个分区,全部将数据发给子RDD的一个分区;

宽依赖(shuffle):父RDD的一个分区,将数据发给子RDD的多个分区;(需要依赖网络IO)

区分宽窄依赖:看RDD之间有无分叉;

阶段划分:按照宽依赖划分不同的Stage

划分依据:从后向前,遇到宽依赖就划分出一个阶段,成为Stage,如图:

由此可以看出,每一个阶段的内部一定是窄依赖;

内存迭代计算

如图,在每一个阶段的内部,有多个Task并行计算,每一个Task是一个线程,线程的相关运算均在内存中完成;这样的多个Task,就形成了并行的内存计算管道;

Task的数量收受到全局并行度的限制,大部分的算子都会依循全局并行度的要求,规划自己的分区;如上图所示,设置了全局并行度为3,rdd算子的并行度也是3(有3个Task)

一般来说,只设置全局并行度,不为计算算子单独设置并行度(否则内存迭代管道会减少,内存迭代管道的长度也会缩短)(有的排序算子需要设置并行度,比如说进行全局排序)

Spark并行度

所谓的并行,指的是在同一时间内,有多少个task在运行;

并行度的设置

全局并行度的设置:

集群中如何规划并行度

设置为CPU总核心数的2-10倍;

原因:

注意:并行度的设置只与CPU的总核心数有关;

Spark任务调度流程

spark的任务调度由Driver来完成,包括以下内容:

Driver内的两个组件:

①DAG调度器:将逻辑的DAG图进行处理,最终得到逻辑上的Task划分

②Task调度器:基于DAG的产出,来规划这些逻辑的task应该在哪些物理的executor上运行,并监控管理其运行

spark的程序调度流程:

如下图所示:

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

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

相关文章

盘点那些免费开源、无比精致的图标库,无论是设计还是开发,都很好用

之前分享过很多好看精致的图标库,这对日常设计和开发工作,都很方便,欢迎大家尝试。 css.gg 详细介绍:https://www.thosefree.com/css-gg 一套漂亮的纯 CSS 实现的免费开源图标库,700多个时尚漂亮的 css 图标库&…

本地开发项目删除原有git信息,上传到自己的git仓库

1. 删除原有git信息 进入到项目的目录,右键,选择 git Bash Here 输入 rm -rf .git 查看当前的远程信息:git remote -v 如果有远程信息 使用 git remote rm origin 删除 2.添加自己的远程信息 使用 git remote add origin https://xxxx.git…

分布式事务 --- Seata事务模式、高可用

一、事务模式 1.1、XA模式 XA 规范 是 X/Open 组织定义的分布式事务处理(DTP,Distributed Transaction Processing)标准,XA 规范 描述了全局的TM与局部的RM之间的接口,几乎所有主流的数据库都对 XA 规范 提供了支持。…

三种常用的以太网端口链路类型:Access、Hybrid和Trunk

以太网是计算机网络中最常用的协议之一,它允许计算机在同一局域网上通信。在以太网中,交换机(Switch)是一个重要的组件,它们有许多不同的端口,用于连接不同的设备。为了管理和维护这些端口,有三…

Java 数组在内存中的结构是怎样的?数组访问、遍历、复制、扩容、缩容如何编写代码?

Java是一门面向对象的编程语言,数组是其中的重要数据结构之一。在Java中,数组是一种固定长度、有序的数据结构,可以存储一组相同数据类型的元素。在本文中,我们将详细介绍Java数组在内存中的结构。 Java数组的定义 在Java中&…

美国访问学者博士后签证过期后应如何更新?

“美国访问学者类J签证过期后应如何更新?”有读者希望知识人网分享相关经验。今天我们来简单介绍下美国签证免面谈代传递服务,以及其申请条件和相关流程,希望能对大家有所帮助。 首先我们需要明确两个概念: DS2019表的有效期&…

第一章(四):Django框架的模板(DTL):变量、标签、模板过滤器、模板继承、配置模板文件(staticfiles)

系列文章目录 备注:这里是Django系列文章的所有文章的目录 第一章(一) : Django框架如何创建项目、创建应用、创建templates;如何启动django项目; 第一章(二):Django框架的模式、路由、视图; 第一章(三):D…

copilot平替tabnine解析

1.copilot 借着最近chatgpt大火的东风,copilot又重新火了一把。 什么是copilot?直接上wiki百科上的解释 GitHub Copilot是GitHub和OpenAI合作开发的一个人工智能工具,用户在使用Visual Studio Code、Microsoft Visual Studio、Vim、Cursor或…

Flask使用Flask-SQLAlchemy对数据库操作详解二(配置、表与表之间一对一、多对一、多对多关系及增删改查参数和代码详细总结)

前面接:Flask使用Flask-SQLAlchemy对数据库操作详解二(配置、表与表之间一对一、多对一、多对多关系及增删改查参数和代码详细总结) 文章目录 4.增删改查操作4.1添加1. 使用add()方法添加新数据2. 使用create()方法创建新数据 4.2 查询数据1.…

ADAS/AD笔记之特斯拉Autopilot-HW3.0系统

摘要: 目前国内一般直接将高速NOA成为“L2”;因此,复杂度更高的城区NOA,就自然的映射到了“L2”。 一、概述: 特斯拉Autopilot系统首创了NOA这种淡化脱手/脱眼/脱脑(驾驶自动化程度)逻辑的功能…

电脑系统怎么选?Win?MacOS?Linux?

马上要学编程了,我们要学什么操作系统呢?是MacOS,还是Windows,或者是Linux或者其他!那我们今天就来说说MacOS系统和Windows系统的优缺点,也介绍一下其他的系统。让你心里有底! 1、Windows 首先当…

OpenShift 4 - 在 CI/CD Pipeline 中创建 KubeVirt 容器虚拟机 - 方法3

《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在支持 OpenShift 4.12 的 OpenShift 环境中验证 文章目录 创建并运行 CI/CD Pipeline访问 VMPipeline 的 Task 解读 创建并运行 CI/CD Pipeline 执行命令,生成公钥-私钥对。 $ ssh-keygen$ l…

贪心法——最小生成树

问题描述&#xff1a; 最小生成树Time Limit: 2000 MSMemory Limit: 5000 KB Description 给定n(n<500)个顶点,以及E(E<20000)条边&#xff0c;计算最小生成树的权值.Input 第一行输入T表示有T组数据。每组数据第一行输入n、E&#xff0c;分别表示顶点数和边数. 接下…

2023年度国家自然科学基金项目申请初审结果公布~

2023年4月28日&#xff0c;国家自然科学基金委员会发布了《关于公布2023年度国家自然科学基金项目申请初审结果的通告》&#xff0c;2023年度国家自然科学基金项目申请初审结果公布&#xff01;2023年度项目申请集中接收期间&#xff0c;自然科学基金委共接收各类型项目申请304…

8年测试经验分享,15K的测试工程师需要掌握那些知识?

软件测试行业是随着软件产业的发展而兴起的一个重要领域&#xff0c;目前处于快速发展阶段。以下是软件测试行业的现状&#xff1a; 人才需求增长&#xff1a;随着互联网、移动互联网、物联网等新技术的不断发展&#xff0c;软件测试人才需求呈现出快速增长的趋势。越来越多的…

找高清无水印视频素材,就上这9个网站。

推荐几个我的视频素材库&#xff0c;有免费、收费、商用&#xff0c;希望对大家有帮助&#xff01; 1、菜鸟图库 https://www.sucai999.com/video.html?vNTYwNDUx 菜鸟图库可以找到设计、办公、图片、视频、音频等各种素材。视频素材就有上千个&#xff0c;全部都很高清&…

20.考虑用户舒适度的冷热电多能互补综合能源系统优化调度

说明书 MATLAB代码&#xff1a;考虑用户舒适度的冷热电多能互补综合能源系统优化调度 关键词&#xff1a;用户舒适度 综合能源 PMV 优化调度 参考文档&#xff1a;《冷热电气多能互补的微能源网鲁棒优化调度》基础模型加舒适度部分模型&#xff1b; 仿真平台&#xff1a;MA…

IBM停止招聘可被AI取代的职位;三星禁止员工使用ChatGPT;印象笔记官方AI免费课;清华美院AI绘画的高质量分享 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 『IBM将停止招聘可被人工智能取代的职位』近8000名工人将被自动化取代 据彭博社报道&#xff0c;IBM首席执行官Arvind Krishna表示&am…

三、信号槽

三、信号槽 1.概念&#xff1a; 信号槽指的是信号函数与槽函数的连接&#xff0c;可以使用不同的对象通过信号槽连接在一起&#xff0c;从而实现对象之间的通信。 信号槽认为是对象之间的一种约定&#xff1a;如果.......&#xff0c;则....... 信号槽是Qt新增的特性&#xff…

五一2.74亿人倾巢而出,小长假到底去哪玩儿?

今天是五一劳动节小长假结束后&#xff0c;打工人上班的第一天。 今年的五一非比寻常&#xff0c;是三年口罩之后的第一个小长假&#xff0c;回家探亲的回家、出门玩的出门&#xff0c;据统计&#xff0c;今年五一劳动节5天小长假&#xff0c;累计有2.74亿人次在国内出游&…