当前位置:   article > 正文

大数据技术与应用(Spark),2024年最新含面试题+答案_spark面试问题

spark面试问题

2)在 Spark 中引入了 RDD 的抽象,它是分布在一组结点中的只读对象集合,这些集合是弹性的,如果数据集的一部分丢失,则可以根据血缘关系对它们进行重建,保证了数据的高容错性。

3)移动计算而非移动数据,RDD 分区可以就近读取 HDFS 中的数据块到各个结点内存中进行计算。

4)使用多线程池模型来减少 Task 启动开销。

5)采用容错的、高可伸缩性的 Akka 作为通信框架。

2.Spark Streaming

Spark Streaming 是一个对实时数据流进行高通量、容错处理的流式处理系统,可以对多种数据源(如 Kafka、Flume、Twitter、Zero 和 TCP 套接字)进行类似 map、reduce 和 join 的复杂操作,并将结果保存到外部文件系统、数据库中,或应用到实时仪表盘上。

Spark Streaming 的核心思想是将流式计算分解成一系列短小的批处理作业,这里的批处理引擎是 Spark Core。也就是把 Spark Streaming 的输入数据按照设定的时间片(如 1 秒)分成一段一段的数据,每一段数据都转换成 Spark 中的 RDD,然后将 Spark Streaming 中对 DStream 的转换操作变为对 Spark 中的 RDD 的转换操作,将 RDD 经过操作变成的中间结果保存在内存中。

  1. Spark SQL

可以执行SQL查询,支持基本的SQL语法和HiveQL语法,可读取的数据源包括Hive、HDFS、关系数据库(如MySQL)等。

  1. Spark MLlib

Spark MLlib 实现了一些常见的机器学习算法和实用程序,包括分类、回归、聚类、协同过滤、降维及底层优化,并且该算法可以进行扩充。Spark MLlib 降低了机器学习的门槛,开发人员只要具备一定的理论知识就能进行机器学习的工作。

5.MLBase

是Spark生态圈的一部分,专注于机器学习领域,学习门槛较低。MLBase由4部分组成:MLlib,MLI,ML Optimizer和MLRuntime。

6.Spark GraphX

图计算的应用在很多情况下处理的数据量都是很庞大的。如果用户需要自行编写相关的图计算算法,并且在集群中应用,难度是非常大的。而使用GraphX即可解决这个问题,因为它内置了许多与图相关的算法,如在移动社交关系分析中可使用图计算相关算法进行处理和分析。

二:mapreduce与spark的对比

1.spark基于内存,mapreduce基于磁盘。

2.spark更加通用,spark提供了transformation和action这两大类的多个功能api,另外还有流式处理sparkstreaming模块、图计算GraphX等等;mapreduce只提供了map和reduce两种操作,流计算以及其他模块的支持比较缺乏。

3.mapreduce任务调度和启动开销大,spark线程池模型减少task启动开销。

4.mapreduce不适合迭代计算(如机器学习、图计算等),交互式处理(数据挖掘) 和流式处理(点击日志分析), 其中间结果需要落地,需要保存到磁盘,这样必然会有磁盘io操做,影响性能。

spark把运算的中间数据存放在内存,迭代计算效率更高,更适合做需要反复迭代的计算。

5.spark容错性高,它通过弹性分布式数据集RDD来实现高效容错,RDD是一组分布式的存储在节点内存中的只读性质的数据集,这些集合是弹性的,某一部分丢失或者出错,可以通过整个数据集的计算流程的血缘关系来实现重建;mapreduce的话容错可能只能重新计算了,成本较高  。

6.spark框架和生态更为复杂,首先有RDD、血缘lineage(保存了RDD的依赖关系)、执行时的有向无环图DAG、stage划分等等,很多时候spark作业都需要根据不同业务场景的需要进行调优已达到性能要求;

mapreduce框架及其生态相对较为简单,对性能的要求也相对较弱,但是运行较为稳定,适合长期后台运行。

总结:spark生态更为丰富,功能更为强大、性能更佳,适用范围更广;mapreduce更简单、稳定性好、适合离线海量数据挖掘计算。

三:结构化数据与非结构化数据

结构化数据是指按照预定义的模式和格式进行组织和存储的数据。它通常以表格形式存在,每个数据字段都有明确定义的数据类型和约束条件。结构化数据可以使用关系型数据库进行存储和管理,例如使用SQL语言进行查询和操作。常见的结构化数据包括用户信息、订单记录、销售数据等。

非结构化数据是指没有明确格式和模式的数据,它的组织形式不规则且不易被机器直接理解和处理。非结构化数据通常以文本、图像、音频、视频等形式存在。由于非结构化数据的复杂性,传统的关系型数据库难以有效存储和处理这些数据。因此,针对非结构化数据,常用的存储和处理方式包括文本搜索引擎、图像识别技术、自然语言处理等。

四:spark搭建的三种模式

1.local

Local模式就是运行在一台计算机上的模式,通常就是用于在本机上练手和测试。

2.yarn

Standalone模式是指使用Spark原生的资源管理器的集群运行模式,需要使用Master和Worker节点,其中,Master节点负责资源的控制、管理、监控集群中的Worker节点.3.standalone

五:mapreduce的执行流程

YARN模式是指使用Hadoop的YARN作为资源管理器的集群运行模式。
在YARN模式下,不需要使用Master和Worker节点(即不需要在搭建额外的spark集群了),而是使用YARN下的ResourceManager 节点与NodeManager节点,对应Standalone模式下的Master节点和Worker节点。

1、数据输入
  • 在执行MapReduce任务前,将小文件进行合并,大量小文件会产生大量的map任务,增大map任务装载次数,而任务装载较耗时,从而导致MapReduce运行速度较慢。因此采用CombineTextInputFormat来作为输入,解决输入端大量的小文件场景。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

链图片转存中…(img-d7I0zdtA-1713022181404)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/568116
推荐阅读
相关标签
  

闽ICP备14008679号