大数据面试之Spark Core常见题目

news2024/11/23 15:44:58

大数据面试之Spark Core常见题目

1 Spark任务的划分

1、Application:初始化一个SparkContext即生成一个Application。

2、Job:一个Action算子会生成一个Job,有多个Action算子就有多个Job。

3、Stage:Stage等于宽依赖的个数加1,或者说是Shuffle的个数加1。

4、Task:一个Stage阶段中,最后一个RDD的分区个数就是Task的个数。

2 Cache缓存和Checkpoint检查点

1、Cache缓存只是将数据保存起来,不会改变血缘依赖关系。Checkpoint检查点会改变血缘依赖关系。

2、Cache缓存的数据通常存储在磁盘、内存等地方,可靠性低。Checkpoint的数据通常存储在HDFS、HBase、Redis、MySQL等第三方的文件系统,可靠性高。

3 Spark中的宽窄依赖

宽依赖:有Shuffle的是宽依赖。一般通过有聚合操作来判定Shuffle。

窄依赖:没有Shuffle,不需要聚合在一起。

4 Spark中Kryo序列化

​ Kryo序列化比Java序列化更快更紧凑,可以提高效率。但Spark默认的序列化是Java序列化并不是Spark序列化,因为Spark并不支持所有序列化类型,所以每次使用都必须进行注册。注册只针对于RDD。在DataFrames和DataSet当中自动实现了Kryo序列化。

5 RDD五大属性

在这里插入图片描述

文字描述:

1、一组分区。标记数据是哪个分区的。

2、一个计算每个分区的函数。对数据进行计算。

4、分区器。数据计算完了往分区器里面发送,控制分区的数据流向。

3、RDD之间的依赖关系。数据发送到分区器之后形成了对应的依赖关系。

5、一个列表,存储读取每个Partition的优先位置。移动数据不如移动计算。

6 Spark的transformation算子

1、单Value

(1)map

(2)mapPartitions

(3)mapPartitionsWithIndex

(4)flatMap

(5)groupBy

(6)filter

(7)sample

(8)distinct

(9)sortBy

(10)coalesce

coalesce底层参数设置true,要执行shuffle,若是false,就没有shuffle。一般用没有shuffle的来缩减分区。

(11)repartition

在coalesce外面封装了一层,给参数置为了true,重新分区。coalesce(numPartitions, shuffle = true)
一般情况下,增加rdd的partition数量使用repartition,减少partition数量时使用coalesce

2、双vlaue

交集、并集、差集、拉链

(1)intersection

(2)union

(3)subtract

(4)zip

3、Key-Value

(1)partitionBy

(2)reduceByKey

​ 有预聚合操作,企业中用的稍微多些,但是也要注意应用场景。

(3)groupByKey

​ 没有预聚合操作

上面是(2)和(3)进行比较。

(4)aggregateByKey

(5)foldByKey

(6)combineByKey

这个是(2)(4)(5)(6)进行比较。reduceByKey没有初始值,分区内和分区间逻辑相同。foldByKey有初始值,分区内和分区间逻辑相同。aggregateByKey有初始值,分区内和分区间逻辑可以不相同。combineByKey有初始值,并且可以变换结构,分区内和分区间逻辑可以不相同。

7 Spark的action算子

(1)reduce

(2)first

(3)take

(4)foreach

(5)foreachPartition

8 Spark广播变量

广播变量的文字描述:

​ 如果我们要在分布式计算里面分发大对象,例如:字典,集合,黑白名单等,这个都会由Driver端进行分发,一般来讲,如果这个变量不是广播变量,那么每个task就会分发一份,这在task数目十分多的情况下Driver的带宽会成为系统的瓶颈,而且会大量消耗task服务器上的资源,如果将这个变量声明为广播变量,那么只是每个executor拥有一份,这个executor启动的task会共享这个变量,节省了通信的成本和服务器的资源。

9 Spark累加器

累加器文字描述:

​ 在Spark应用程序中,我们经常会有这样的需求,如异常监控,调试,记录符合某特性的数据的数目,这种需求都需要用到计数器,如果一个变量不被声明为一个累加器,那么它将在被改变时不会在driver端进行全局汇总,即在分布式运行时每个task运行的只是原始变量的一个副本,并不能改变原始变量的值,但是当这个变量被声明为累加器后,该变量就会有分布式计数的功能。



声明:
        文章中代码及相关语句为自己根据相应理解编写,文章中出现的相关图片为自己实践中的截图和相关技术对应的图片,若有相关异议,请联系删除。感谢。转载请注明出处,感谢。


By luoyepiaoxue2014

B站: https://space.bilibili.com/1523287361 点击打开链接
微博: http://weibo.com/luoyepiaoxue2014 点击打开链接

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

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

相关文章

特殊符号(一)—反斜杠 ” \ “(旋转光标和倒计时的实现)

特殊符号一.功能1.功能一:续航符2.功能二:转义符二.旋转光标和倒计时一.功能 1.功能一:续航符 顾名思义,就是连续的意思,主要用于换行的时候,看例子 以上是一个简单的判断语句,如果if里面的判断…

Win10十二月更新系统讲了什么?

微软今天凌晨发布了win10系统12月最新的累积更新补丁,根据该公司的公告,更新 KB5021233 将版本号增加到构建 19042.2364 (20H2)、19043.2364 (21H1)、19044.2364 (21H2) 和 19045.23…

01-35-springcloud-zk-eureka-consul-cap-父工程

01-springcloud-入门理论等: 微服务 1、什么是微服务 微服务是一种架构风格一个应用拆分为一组小型服务每个服务运行在自己的进程内,也就是可独立部署和升级服务之间使用轻量级HTTP交互服务围绕业务功能拆分可以由全自动部署机制独立部署去中心化&…

产品外观设计一一素描

在反映产品外观设计时,应根据产品的不同功能选择反映方法,以便更清晰地表达创作者的设计理念。首先,我们应该运用透视图的规律性来构建空间框架结构,将镜头中的许多外观元素有机地结合起来,并根据设计科学地安排镜头中…

Portal数据清理过程说明

Portal门户集成平台作为统一的门户搭建和展现平台,提供综合门户、信息门户、应用门户、数据门户等不同类型门户的建设能力,可以为企业构建门户网站、内部业务中心,同时对企业文档资料进行整合、统一归档,对内部、外部提供资料。通…

基于微信小程序的劳务咨询系统设计与实现-计算机毕业设计

项目介绍 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于劳务咨询服务平台小程序当然也不能排除在外,随着网络技术的不断成熟,带动了劳务咨询服务平台小程序&#xff0…

[附源码]计算机毕业设计第三方游戏零售平台Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis MavenVue等等组成,B/S模式…

互联网电商大厂的分布式事务使用案例

事务的原子性、持久性可确保在一个事务内,更新多条数据都成功/失败。在一个系统内部,我们可以使用数据库事务来保证数据一致性。那如果一笔交易,涉及到跨多个系统、多个数据库的时候,用单一的数据库事务就没办法解决了。 在之前大…

Altova MissionKit Enterprise 2023 SP1 Crack

屡获殊荣的 XML、JSON、SQL 和 UML 工具套件 以低于 2 个的价格获得 7 个 XML、JSON SQL 和 UML 工具! Altova MissionKit 是面向信息架构师和应用程序开发人员的企业级 XML、JSON、SQL 和 UML 工具的软件开发套件。MissionKit 包括 Altova XMLSpy、MapForce、Styl…

Python 中的垃圾回收机制总结(1)

1.背景 对于Python来说,一切皆为对象,所有的变量赋值都遵循着对象引用机制。 程序在电脑上运行的时候,需要在内存中开辟出一块空间,用于存放运行时产生的临时变量,一方面,内存的容量是有限的;…

JNPF3.4.5消息模块:多渠道应用,配置灵活多样,满足更多使用场景

自11月15日,JNPF 3.4.5 JAVA版本上线,就受到了众多用户的广泛好评,此次更新为用户带来了不同以往的使用体验。 在本次更新中,所有工作流都可以实现自主配置消息模板的操作,同时包括站内信,也可以实现自主配…

sublime json美化

sublime 的插件 json美化感觉很难用,好多正常的json串都 不能正常解析 ,自己写了一个json解析插件,此插件跟网上教程的json美化插件 不同的是: 只对json的特殊字符进行格式化 { [ ] } : , 这种不是很严格但是正好解决了我的问…

【Redis】Redis 持久化

文章目录概述RDB触发机制如何恢复 rdb 文件?RDB 优点:RDB 缺点:AOFAOF 优点AOF 缺点概述 Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么服务器一旦进程退出,服务器中的数据库状态也会消失…

【C语言进阶】一文速通面试中的指针相关疑难杂症(内含模拟库函数 qsort 的实现)

目录 🥇前言🥇: 一、指向函数指针数组的指针🤯: 1.书写格式🦚: 2.指向函数指针数组指针示例🦩: 二、回调函数🧐: 1.回调函数的定义&#x1f99…

嵌入式软件工程师技能树——应用编程/网络编程/驱动开发/操作系统/计算机网络

文章目录Linux驱动开发1、Linux内核组成2、用户空间与内核的通讯方式有哪些?3、系统调用read/write流程4、内核态用户态的区别5、bootloader内核 根文件的关系6、BootLoader的作用7、BootLoader两个启动阶段1、汇编实现,完成依赖于CPU体系架构的设置&…

Win10安装Linux虚拟机-安装与使用

Win10安装Linux虚拟机-安装与使用 1、VMware 的下载 VMWare虚拟机软件是一个“虚拟PC”软件,它使你可以在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。 下载地址:https://customerconnect.vmware.com/en/downloads/#all_products 在搜索中…

用 Charles 断点调试 HTTPS 请求,原理解析

现在的网站基本都是 https 的,而 charles 是常用的 http 抓包工具,所以用 charles 调试 https 请求是常见的需求。 今天就分享下如何用 charles 调试 https 请求,如何打断点。 首先安装 charles,点击 start recording&#xff1…

FineReport平台数据分析-图表显示部分系列接口

1. 概述 1.1 应用场景 当图表系列较多时,用户希望可以自己设置哪些系列显示,哪些系列不显示。以决策报表为例,实现效果如下图: 1.2 实现思路 通过FR.Chart.WebUtils.getChart("chartID").getChartWithIndex(chartInde…

静态HTML旅行主题网页作业——青岛民俗7页html+css+javascript+jquery 地方民俗网页设计与实现

👨‍🎓静态网站的编写主要是用 HTML DⅣV CSSJS等来完成页面的排版设计👩‍🎓,一般的网页作业需要融入以下知识点:div布局、浮动定位、高级css、表格、表单及验证、js轮播图、音频视频Fash的应用、uli、下拉…

web开发:linux常用命令总结

1.关于目录操作: (1)ls 列出当前目录下都有哪些文件/目录 也可以写成: ls 指定目录 列出指定目录下的文件/目录 还可以写成 ls -l 指定目录 以列表的形式列出 或缩写成 ll 指定目录 (2)pwd 查看当前…