Spark常见面试题整理

Spark常见面试题整理

之前写过不少SparkMLlib和SparkGraphX的应用,但是一直都没有像Flink那样系统的写过它的架构和API等,一方面是它们有很多类似的情况,基本都是一通百通,另一方面是确实懒,最近两天整理文档翻到之前整理的一些面试题和工作中积累的一些有关Spark的问题,再整理一下发出来~

文章目录


1、Spark中如何优化Join操作?

分两种情况,一是小表Join大表,二是大表Join大表(小表Join小表,没有优化的必要),这里表的书法只是一种泛指,Spark中的join操作通用,包括RDD的Join。

  • 小表Join大表
  • 大表Join大表

Spark中如何优化Join操作?

2、数据倾斜问题具体指的是什么,一般怎么解决?

数据倾斜指的是数据在各个节点(执行器)之间分布不均衡,导致部分节点处理的数据量远多于其他节点(Spark和数仓中的数据倾斜本质是一个意思)。

Spark中常见的出现数据倾斜的原因:

  • 数据分布本身就不均匀:比如电商行业存在一些热门商品,游戏行业存在一些热门礼包
  • join或groupBy键的分布不均:如果进行这些操作时所依赖的键本身分布就是极不均衡的,某些键对应的数据量非常大,就会出现大量数据都分布在一个节点的问题即出现数据倾斜问题。
  • 默认的分区策略不适用:Spark 默认使用哈希分区来分配数据。如果数据的键经过哈希后,不能均匀地分布在不同的分区,也会造成数据倾斜。

数据倾斜解决方案

3、Spark中的缓存级别?

缓存机制能提高程序运行速度的原因是什么?

4、Spark中的窄依赖和宽依赖分别指的是什么?

Spark中的窄依赖和宽依赖分别指的是什么?

5、Spark中的任务和阶段分别指的是什么?

阶段是 Spark 执行过程中的一个关键概念。一个 Spark 作业由一系列的阶段组成,每个阶段包含对数据的一组并行操作。阶段的划分基本上由宽依赖(Shuffle 依赖)决定。(即如果一个操作,如 reduceByKey() 或 groupBy(),需要数据重新分配(Shuffle),Spark 会结束当前阶段并启动一个新阶段,因为这些操作需要从多个节点读取和重新组合数据,对于不需要大规模数据重组的操作(如 map()、filter()),可以在同一阶段内连续处理,因为这些操作仅涉及单个或少数几个父分区的数据处理)每当一个操作引入了宽依赖,Spark 就会结束当前的阶段并开始一个新阶段。

6、Spark中缓存和检查点(Checkpoint)的区别?

核心区别:是否切断血缘依赖
Spark中缓存和检查点(Checkpoint)的区别?


总结

相关推荐
计算机毕业编程指导师25 分钟前
Python大数据毕设:基于Hadoop的病毒式社交媒体趋势和参与度分析系统怎么做 源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·计算机·毕业设计·课程设计·社交媒体
计算机毕业编程指导师27 分钟前
【计算机毕设选题推荐】基于Spark与Hadoop的AI就业收入区域差异分析系统 源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·python·数据分析·spark·毕业设计·课程设计·ai就业收入
小猴子爱上树31 分钟前
跨马翻译:批量图片翻译与视频字幕、智能抠图一站式在线图片翻译工具
大数据·人工智能·python·音视频
W***259233 分钟前
2026 企业 AI 办公工具选型指南:能力评估与平台全景分析
大数据·人工智能
2601_967212721 小时前
电源轨道系统核心技术路线对比与选型要点
大数据·经验分享
龙亘川2 小时前
数智赋能物业不动产治理:亘川智城智慧物业系统实践解析
大数据·人工智能·智慧城市·开源软件·数据可视化
大大大大晴天️2 小时前
元数据目录到数据资产运营:让好数据被看见、被复用、被持续经营
大数据·数据治理
Elastic 中国社区官方博客3 小时前
错误最多的服务运行正常:使用 ES|QL 从日志进行根因分析
大数据·运维·数据库·sql·elasticsearch·搜索引擎·全文检索
计算机毕业设计杰瑞3 小时前
【2027最新精品大数据】基于大数据的全国各地景点指数数据可视化分析,附源码_高质量项目_可视化_数据分析_毕设选题推荐_SPark_Hadoop_毕设指导
大数据·信息可视化·数据分析
计算机毕业设计杰瑞3 小时前
【2027精品大数据项目】基于大数据的全球太空探索数据分析与可视化,附源码_数据可视化_数据分析_毕设选题_SPark_Hadoop_文档指导ppt
大数据·信息可视化·数据挖掘·课程设计