当前位置: 首页 > news >正文

Spark大数据处理讲课笔记----Spark任务调度

零、本节学习目标

  1. 理解DAG概念
  2. 了解Stage划分
  3. 了解RDD在Spark中的运行流程

一、有向无环图

(一)DAG概念

  • DAG(Directed Acyclic Graph)叫做有向无环图,Spark中的RDD通过一系列的转换算子操作和行动算子操作形成了一个DAG。DAG是一种非常重要的图论数据结构。如果一个有向图无法从任意顶点出发经过若干条边回到该点,则这个图就是有向无环图。“4→6→1→2”是一条路径,“4→6→5”也是一条路径,并且图中不存在从顶点经过若干条边后能回到该点。

 

(二)实例讲解

  • 根据RDD之间依赖关系的不同可将DAG划分成不同的Stage(调度阶段)。对窄依赖来说,RDD分区的转换处理是在一个线程里完成,所以窄依赖会被Spark划分到同一个Stage中;而对宽依赖来说,由于有Shuffle存在,所以只能在父RDD处理完成后,下一个Stage才能开始接下来的计算,因此宽依赖是划分Stage的依据,当RDD进行转换操作,遇到宽依赖类型的转换操作时,就划为一个Stage。

  • A、C、E是三个RDD的实例
  • 当A做groupByKey转换操作生成B时,由于groupByKey转换操作属于宽依赖类型,所以就把A划分为一个Stage,如Stage1。
  • 当C做map转换操作生成D, D与E做union转换操作生成F。由于map和union转换操作都属于窄依赖类型,因此不进行Stage的划分,而是将C、D、E、F加入到同一个Stage中。
  • 当F与B进行join转换操作时,由于这时的join操作是非协同划分,所以属于宽依赖,因此会划分为一个Stage,如Stage2。
  • 剩下的B和G被划分为一个Stage,如Stage3。

二、Stage划分依据

  • Spark会根据DAG将整个计算划分为多个阶段,每个阶段称为一个Stage。每个Stage由多个Task任务并行进行计算,每个Task任务作用在一个分区上,一个Stage的总Task任务数量是由Stage中最后一个RDD的分区个数决定的
  • Stage的划分依据为是否有宽依赖,即是否有Shuffle。Spark调度器会从DAG图的末端向前进行递归划分,遇到Shuffle则进行划分,Shuffle之前的所有RDD组成一个Stage,整个DAG图为一个Stage。

(一)两阶段案例

  • 经典的单词计数执行流程的Stage划分如下图所示。

 

  • 上图中的依赖关系一共可以划分为两个Stage:从后向前进行递归划分,RDD3到RDD4的转换是Shuffle操作,因此在RDD3与RDD4之间划开,继续向前查找,RDD1、RDD2、RDD3之间的关系为窄依赖,因此为一个Stage;整个转换过程为一个Stage。

(二)三阶段案例

  • 下图中的依赖关系一共可以划分为3个Stage:从后向前进行递归划分,由于RDD6到RDD7的转换是Shuffle操作,因此在RDD6与RDD7之间划开,然后继续向前查找,RDD3、RDD4、RDD5、RDD6为一个Stage;由于RDD1到RDD2的转换是Shuffle操作,因此在RDD1与RDD2之间划开,然后继续向前查找,RDD1为一个Stage;整个转换过程为一个Stage。

 

三、RDD在Spark中的运行流程

  • Spark的任务调度流程,即RDD在Spark中的运行流程分为RDD Objects、DAGScheduler、TaskScheduler以及Worker四个部分。

 

(一)RDD Objects

  • 当RDD对象创建后,SparkContext会根据RDD对象构建DAG有向无环图,然后将Task提交给DAGScheduler。

(二)DAGScheduler

  • 将作业的DAG划分成不同Stage,每个Stage都是TaskSet任务集合,并以TaskSet为单位提交给TaskScheduler。

(三)TaskScheduler

  • 通过TaskSetManager管理Task,并通过集群中的资源管理器把Task发给集群中Worker的Executor。

(四)Worker

  • Spark集群中的Worker接收到Task后,把Task运行在Executor进程中,一个进程中可以有多个线程在工作,从而可以处理多个数据分区。

相关文章:

Spark大数据处理讲课笔记----Spark任务调度

零、本节学习目标 理解DAG概念了解Stage划分了解RDD在Spark中的运行流程 一、有向无环图 (一)DAG概念 DAG(Directed Acyclic Graph)叫做有向无环图,Spark中的RDD通过一系列的转换算子操作和行动算子操作形成了一个…...

【22-23春】AI作业10-经典卷积网络

1.LeNet & MNIST LeNet是一种神经网络的模型,用于图像识别和分类。他包含 3 个卷积层,2 个池化层,1 个全连接层。其中所有卷积层的所有卷积核都为 5x5,步长 strid1,池化方法都为全局 pooling,激活函数…...

第13章_约束

第13章_约束 1. 约束(constraint)概述 1.1 为什么需要约束 数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的…...

GPC规范--安全域基础概念

概述: 分为三种主流类型: 1、发卡方安全域(Issuer Security Domain, ISD),卡片上首要的、强制性存在的安全域,是卡片管理者(通常是发卡方)在卡片内的代表; 2、补充安全域(Supplementary Security Domain&am…...

C++初阶--C++入门之基础学习

0.前言 C是一门非常好的编程语言,但可能在学习C的过程中会遇到很多困难。人们常说 “一个人走得很快,一群人会走的更远”, 所以就让我们一起攻坚克难,一起征服C吧!从本章开始,我们将开始C的基础学习&#x…...

服务器虚拟化部署

服务器虚拟化部署 1、背景2、目的3、环境4、部署4.1、部署VMware ESXi4.1.1、准备工作4.1.2、部署ESXi4.1.3、配置ESXi4.1.4 、部署虚拟机 1、背景 项目上利旧9台服务器,项目需要使用15台服务器,外购已经没有项目硬件采购预算,只能从目前的…...

实验篇(7.2) 01. 实验环境介绍 远程访问 ❀ Fortinet网络安全专家 NSE4

【简介】学习NSE4,如果只看文章而不动手做实验,就象耍流氓。为了有效的巩固学习到的内容,建议经常动手做实验。实验不怕出错,身经百战后,再在生产环境部署和配置FortiGate防火墙,就会做到胸有成竹。 虚拟实…...

ThinkPHP6 模型层的模型属性,表映射关系,以及如何在控制层中使用模型层和模型层中的简单CRUD

ThinkPHP6 模型层的模型属性,表映射关系,以及模型层的CRUD及如何在控制层中使用模型层 1. model 模型层的默认映射规则 模型,即mvc模式中的model层,model层用来对接数据库,操作数据库的增删改查。 在tp6中&#xff…...

CodeForces.1806A .平面移动.[简单][判断可达范围][找步数规律]

题目描述: 题目解读: 给定移动规则以及起始点,终点;分析终点是否可达,可达则输出最小步数。 解题思路: 首先要判定是否可达。画图可知,对于题目给定的移动规则,只能到达起始点(a,b…...

Linux系统编程学习 NO.4 ——基础指令学习、操作系统时间的概念、文件压缩包的概念

1.时间相关的概念以及指令 1.1.时间相关的指令 1.1.1.date指令 date可以指定时间显示的格式:date 指定格式 选项 %H:小时 %M:分钟 %S:秒数 %Y:年份 %m:月份 %d:日 %F:相当于%Y-%m-%d %X:相当…...

leecode 数据库:601. 体育馆的人流量

导入数据: Create table If Not Exists Stadium (id int, visit_date DATE NULL, people int); Truncate table Stadium; insert into Stadium (id, visit_date, people) values (1, 2017-01-01, 10); insert into Stadium (id, visit_date, people) values (2, 20…...

gym不渲染画面的解决方案(gym版本号0.26.2)

确认gym版本号 我安装了新版gym,版本号是0.26.2,不渲染画面的原因是,新版gym需要在初始化env时新增一个实参render_mode‘human’,并且不需要主动调用render方法,官方文档入门教程如下 import gym import numpy as n…...

如何在 Fedora 37 上安装 FileZilla?

FileZilla 是一款流行的开源 FTP(文件传输协议)客户端,它提供了一个直观的界面来管理和传输文件。本文将详细介绍如何在 Fedora 37 上安装 FileZilla。以下是安装过程的详细步骤: 步骤一:更新系统 在安装任何软件之前…...

网终安全技术(刘化君)课后被略的答案

目录 8.HTTP客户机与Wb服务器通信通常会泄露哪些信息? 9.在TCP连接建立的3次握手阶段,攻击者为什么可以成功实施SYN Flood攻击?在实际中,如何防范此类攻击? 常用的网络漏洞扫描技术有哪几种?试举例说明。…...

架构思想之DDD

领域驱动设计(Domain-Driven Design,简称DDD)是一种架构思想,旨在通过将业务问题领域化,将业务逻辑放在核心领域中,以实现更好的软件设计和可维护性。下面将介绍如何实现DDD的Java实现,包括如何…...

FinClip | 2023 年 4 月产品大事记

我们的使命是使您(业务专家和开发人员)能够通过小程序解决您的关键业务流程挑战。不妨让我们看看在本月的产品与市场发布亮点,看看它们如何帮助您实现目标。 产品方面的相关动向👇👇👇 全新版本的小程序统…...

试论什么是圣人境界

人类进化方向就是不断的提高智力。鼓吹体力都是反人类。 圣人是人类能够达到的最高境界,再上一层就是神了。按照中华传统,说圣人就是神也是正确的。 圣人境界是什么样子的?在这一点上,孔子给予了答案:吾道一以贯之。掌…...

在外远程登录局域网下的象过河ERP管理系统,无需公网IP

文章目录 概述1.查看象过河服务端端口2.内网穿透3. 异地公网连接4. 固定公网地址4.1 保留一个固定TCP地址4.2 配置固定TCP地址 5. 使用固定地址连接 转发自CSDN远程穿透的文章:公网远程访问公司内网象过河ERP系统「内网穿透」 概述 ERP系统对于企业来说重要性不言而…...

golang 服务中 context 超时处理的思考

文章目录 前言起因:日志告警引发的思考什么是contextcontext的作用context超时之后继续执行 or 中断 最后 前言 公司运行的服务代码中,随处可见各种各样的日志信息,其中大多数是用来记录各种异常的日志,一方面,当出现…...

遇到Uniapp配置meta不生效怎么解决

Uniapp是一种基于 Vue.js 的跨平台应用开发框架,其开发简单、易上手,可以快速构建出 iOS、Android 和 H5 页面,成为现在移动应用开发的重要工具之一。然而,跨平台应用的开发也带来了一些问题,比如本文即是解决 uniapp …...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

ESP32读取DHT11温湿度数据

芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

LabVIEW双光子成像系统技术

双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器

一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...