大数据 - 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博客

目录

  1. 🥙Task(任务描述)和Task实例(真正运行)  

  2. 🥙Stage(阶段)  

  3.🥙TaskSet和Task  

  4. 🥙DAG  

  5. 🥙Driver端  

  6. 🥙Executor  

  7.🥙job  

8.🥙Application(应用)

?Spark面试题总结:

  1. 🧀什么是闭包引用?  

  2. 🧀什么是广播变量?  

  3. 🧀什么是累加器?  

  4. 🧀有哪些常见的分区器?  

  5. 🧀spark的coalesce和repartition的区别  

  6. 🧀spark的cache和persist的区别  

  7. 🧀说一下宽依赖和窄依赖  

  1. 🥙Task(任务描述)和Task实例(真正运行)  

  • Task(任务描述)指的是由Driver程序发送给Executor程序的逻辑单元,用于执行作业中的某个阶段。

  • Task实例(任务实例)是指Executor上真正运行的任务,它们根据Task描述执行相应的计算逻辑。

每个Task实例在Executor上运行时,会按照Task描述中的逻辑,处理相应的数据分区,并且执行对应的计算操作。一个Task描述可以有多个Task实例并行执行,每个Task实例独立处理数据分区,最终将计算结果返回给Driver程序。

Task在spark内部共有2种: shuffleMapTaskresultTask

最后一个stage所产生的task,是resultTask , 最后后一个阶段为ResultStage

其他stage所产生的task,都属于shuffleMapTask , 其他的阶段为ShuffleMapStage

  2. 🥙Stage(阶段)  

  • 以shuffle为分界线,将DAG转换逻辑从整体划分成段,每一段就称之为一个Stage

  • 一个阶段对应一个TaskSet

  • task任务的个数和阶段的最后一个rdd的分区数一致

  3.🥙TaskSet和Task  

  • 一个阶段对应一个TaskSet

  • 最后一个rdd有四个分区,则会创建4个task实例。这4个task实例会放在这个TaskSet里面。

  • Task: 执行计算的任务单元

  4. 🥙DAG  

DAG(Directed Acyclic Graph)叫做有向无环图,是的一系列RDD转换关系的描述,阶段的描述

  

 

  5. 🥙Driver端  

  • 提交程序的客户端

  • 初始化作业的客户端(阶段的划分,DAG的创建,任务的创建,任务的调度都是在Driver端执行的)

  

  6. 🥙Executor  

执行具体Task的远程端口

  7.🥙job  

具体的任务作业

一个行动算子就触发了一个job(此说法:直观但不精确)

有些行动算子,可能触发多个job,比如take( )

有些transformation算子,也可能会触发job,比如sortByKey()算子[因为它要用rangepartitioner]

一个job就是一个dag的运算流程(触发了一次sc.runJob() 就是一次job)

  

8.🥙Application(应用)

创建一个sparkContext,就生成了一个application

目前Spark系列文章已经更新到第十二篇,Spark第二阶段学习也已经完成。对此,特对知识点做了一个汇总如下

对于第一阶段面试题的整理可参考如下链接:

大数据 - Spark系列《四》- Spark分布式运行原理_spark的哪些操作是分布式并行的,哪些是串行的,如何知道-CSDN博客

?Spark面试题总结:

  1. 🧀什么是闭包引用?  

算子使用了一个算子外的变量,这就是闭包引用

  2. 🧀什么是广播变量?  

它是spark共享数据的一种机制,它会在整个集群中缓存一份数据,每个节点去复制一份,不需要在每个task实例中创建数据对象,从而提升数据的传输效率。

  3. 🧀什么是累加器?  

它是一个全局的共享可写变量。它可以在每一个任务实例中进行计数,然后进行汇总,最后输出在driver端

  4. 🧀有哪些常见的分区器?  

常见的分区器包括HashPartitioner和RangePartitioner等。

  5. 🧀spark的coalesce和repartition的区别  

repartition一般用于增加rdd的分区数量,它通过shuffle对数据重新进行分区

coalesce一般用于减少rdd的分区数量,它可以在不触发shuffle的情况下,将数据从多个分区合并成较少的分区。

  6. 🧀spark的cache和persist的区别  

  • cache():

    • cache()是RDD的一个方法,用于将RDD缓存到内存中。它是persist()方法的一种特殊情况,使用默认的存储级别MEMORY_ONLY。

    • cache()方法是一个懒加载操作,调用后并不会立即触发计算,而是等到第一次调用action操作时才会执行。

  • persist():

    • persist()方法是RDD的通用持久化方法,它允许指定不同的存储级别(如MEMORY_ONLY、MEMORY_AND_DISK、MEMORY_ONLY_SER等)。

    • 与cache()方法不同,persist()方法是一个动作,调用后会立即触发计算,并将计算结果持久化到指定的存储级别。

  7. 🧀说一下宽依赖和窄依赖  

  • 窄依赖

上游RDD的任意一个分区的数据只会被下游某一个分区引用

  • 宽依赖

会产生shuffle,上游RDD的任意一个分区的数据可能会被下游所有分区引用

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

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

相关文章

RDD算子介绍(二)

1. coalesce 用于缩减分区,减少分区个数,减少任务调度成本。 val rdd : RDD[Int] sc.makeRDD(List(1, 2, 3, 4), 4) val newRDD rdd.coalesce(2) newRDD.saveAsTextFile("output") 分区数可以减少,但是减少后的分区里的数据分布…

02-app端文章查看,静态化freemarker,分布式文件系统minIO-黑马头条

app端文章查看,静态化freemarker,分布式文件系统minIO 1)文章列表加载 1.1)需求分析 文章布局展示 1.2)表结构分析 ap_article 文章基本信息表 ap_article_config 文章配置表 ap_article_content 文章内容表 三张表关系分析 1.3)导入文章数据库 1.3.1)导入数据…

ROS2从入门到精通0-2:ROS2简介、对比ROS1与详细安装流程

目录 0 专栏介绍1 什么是机器人操作系统?2 ROS的发展历程3 ROS2与ROS1的区别4 ROS2安装4.1 基本安装4.2 测试ROS24.2.1 测试一:发布者与订阅者4.2.2 测试二:海龟仿真器 5 常见问题 0 专栏介绍 本专栏旨在通过对ROS2的系统学习,掌…

信息系统项目管理师--成本管理

项⽬成本管理重点关注完成项⽬活动所需资源的成本,但同时也考虑项⽬决策对项⽬产品、服务或成果的使⽤成本、维护成本和⽀持成本的影响。不同的⼲系⼈会在不同的时间,⽤不同的⽅法 测算项⽬成本。 就某些项⽬,特别是⼩项⽬⽽⾔,成…

VSCode报错:/bin/sh: python: command not found

背景 以前都是直接用txt写python,然后直接命令行运行。 这次涉及的代码较多,决定用编译器。 写好的一段python点击运行报错! 问题描述 因为我本地安装的是python3,但是vscode用的是另一个路径的python,所以找不到 解决…

视觉语言处理:用Transformer桥接视觉与语言

引言 人工智能研究的前沿领域见证了显著的交叉融合。将计算机视觉和自然语言处理的领域融合,问题随之而来:AI能否直接从其视觉表现,即从原始像素中辨识和理解语言?在这篇博客中,我试图探究AI从图像中直接理解自然语言的…

在 Android 上恢复已删除文件的 5 种简单方法

您可能会因为意外删除、未完成的 Android 更新、手机意外关机等原因而丢失 Android 上的重要数据。新技术的发展使许多手机功能或程序能够从内部恢复丢失的数据。 在 Android 上恢复已删除文件的 5 种简单方法 然而恢复成功率的不确定性也成为人们克服数据丢失困境的重要考虑因…

Android14音频进阶:AudioTrack与AudioFlinger创建数据通道(五十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…

[Spring] IoC 控制反转和DI依赖注入和Spring中的实现以及常见面试题

目录 1. 什么是Spring 2.什么是IoC容器 3.通过实例来深入了解IoC容器的作用 3.1造一量可以定义车辆轮胎尺寸的车出现的问题 3.2解决方法 3.3IoC优势 4.DI介绍 5.Spring中的IoC和DI的实现 5.1.存对象 5.1.2 类注解 5.1.3 方法注解 5.2取对像 (依赖注入) 5.2.1.属性…

FPGA高端项目:FPGA基于GS2971的SDI视频接收+HLS多路视频融合叠加,提供1套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案的SDI接收转HDMI输出应用本方案的SDI接收图像缩放应用本方案的SDI接收纯verilog图像缩放纯verilog多路视频拼接应用本方案的SDI接收HLS图像缩放Video Mixer多路视频拼接应用本方案的SDI接收OSD动态字符叠加…

护眼台灯怎么选比较好?明基、爱德华、书客护眼台灯硬核PK测评

现在不管是学生党学习阅读,还是办公族加班工作,都离不开一盏光源舒适的台灯,然而如今的台灯市场水实在太深的,各种网红、劣质产品混杂在其中,这类台灯往往采用劣质电源,其电源品质较差,导致输出…

VUE3 显示Echarts百度地图

本次实现最终效果 技术基础以及环境要求 vue3 echarts 百度地图API 要求1: VUE3 环境搭建:https://blog.csdn.net/LQ_001/article/details/136293795 要求2: VUE3 echatrs 环境搭建:https://blog.csdn.net/LQ_001/article/details/1363…

Ps:画笔工具

画笔工具 Brush Tool是 Photoshop 中最常用的工具,可广泛地用于绘画与修饰工作之中。 快捷键:B ◆ ◆ ◆ 常用操作方法与技巧 1、熟练掌握画笔工具的操作对于使用其他工具也非常有益,因为 Photoshop 中许多与笔刷相关的工具有类似的选项和操…

多层菜单的实现方案(含HierarchicalDataTemplate使用)

1、递归 下面是Winform的递归添加菜单栏数据,数据设置好父子id方便递归使用 在TreeView的控件窗口加载时,调用递归加载菜单 private void LoadTvMenu(){this.nodeList objService.GetAllMenu(); // 通过Service得到全部数据// 创建一个根节点this.t…

SQL中如何添加数据

SQL中如何添加数据 一、SQL中如何添加数据(方法汇总)二、SQL中如何添加数据(方法详细解说)1. 使用SQL脚本(推荐)1.1 在表中插入1.1.1 **第一种形式**1.1.2 **第二种形式**SQL INSERT INTO 语法示例SQL INSE…

【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现

🌞前言 这里我们会实现一个项目:在linux操作系统下基于OpenCV和Socket的人脸识别系统。 目录 🌞前言 🌞一、项目介绍 🌞二、项目分工 🌞三、项目难题 🌞四、实现细节 🌼4.1 关…

读算法的陷阱:超级平台、算法垄断与场景欺骗笔记06_共谋(下)

1. 博弈论 1.1. 当市场竞争对手之间普遍存在着误解和不信任情绪时,从长远来看,他们一半时间是在合作,另一半时间则是在背叛承诺 1.2. 当一方越了解对手,或者说可以更好地掌握对方的战略性行为时,他才可能找到展开合作…

软件设计不是CRUD(14):低耦合模块设计理论——行为抽象与设计模式(上)

是不是看到“设计模式”四个字,各位读者就觉得后续内容要开始讲一些假大空的内容了?各位读者是不是有这样的感受,就是单纯讲设计模式的内容,网络上能找到很多资料,但是看过这些资料后读者很难将设计模式运用到实际的工作中。甚至出现了一种声音:设计模式是没有用的,应用…

C++:vector底层剖析

文章目录 前言成员变量成员函数vector ()size_t size()size_t capacity()iterator begin()和const_iterator begin()constiterator end()和const_iterator end()const~vector()void push_back(const&T val)vector<T>(const vector<T>& v)vector<T>&a…

前端解决跨域问题( 6种方法 )

本专栏是汇集了一些HTML常常被遗忘的知识&#xff0c;这里算是温故而知新&#xff0c;往往这些零碎的知识点&#xff0c;在你开发中能起到炸惊效果。我们每个人都没有过目不忘&#xff0c;过久不忘的本事&#xff0c;就让这一点点知识慢慢渗透你的脑海。 本专栏的风格是力求简洁…