spark面试必须掌握的知识点概览

简介: 最近很多球友都说在准备面试,不知道准备点啥,尤其是spark,实际上星球里浪尖分享的内容真的都掌握了,应对一般面试绝对没问题,但是遗憾的事情是很多人都是处于不会主动搜集资料,主动梳理知识,主动记忆整理知识,而是伸手要粮的境地。浪尖觉得这个是阻止你成长的罪魁祸手。前天跟朋友聚餐就说道这种情况,不努力,不加班给自己喂粮的,没有足够量和时间积累的人很难在一个领域里有所建树。主动学习,保持激情,不断提高~言归正传,大部分面试者被面试的spark问题估计都会集中于spark core,spark streaming和spark sql,至于mllib和graphx这些估计都是了解项,当然也要逐步

最近很多球友都说在准备面试,不知道准备点啥,尤其是spark,实际上星球里浪尖分享的内容真的都掌握了,应对一般面试绝对没问题,但是遗憾的事情是很多人都是处于不会主动搜集资料,主动梳理知识,主动记忆整理知识,而是伸手要粮的境地。浪尖觉得这个是阻止你成长的罪魁祸手。前天跟朋友聚餐就说道这种情况,不努力,不加班给自己喂粮的,没有足够量和时间积累的人很难在一个领域里有所建树。

主动学习,保持激情,不断提高~

言归正传,大部分面试者被面试的spark问题估计都会集中于spark core,spark streaming和spark sql,至于mllib和graphx这些估计都是了解项,当然也要逐步去学习structured streaming。所以今天浪尖就帮助大家梳理一下spark的主要知识点吧~

手机客户端纯手打字,有错别字请勿怪~

  1. spark的runtime

这个主要是standalone模式下的master和worker,executor,driver,再加上yarn模式下的resourcemanager和nodemanager。要了解一个spark应用提交的过程,也即是driver和executor在集群管理器内部启动的过程,然后就是rpc过程,各个角色的作用。

高手的问题就是如何给两者分配合适内存,然后executor执行task倾斜的表现及如何解决。这些都在星球里分享过了。然后如何对executor的存活挂掉新增进行监控告警。executor动态分配表现及带来的问题。

再高级一点就是driver和executor的类加载器及加载类的原理及过程,当然包括rpc,依赖传输,task调度等。

就这吧……

2.spark core

spark core股名思义就是spark的核心内容,主要是rdd的五大特性及操作算子特点介绍。

DAG的生成,划分,task的调度执行。

数据本地性原理及如何利用和会存在哪些隐患。这也在公众号发过文章和视频了。

reducebykey,groupbykey的区别等等类似算子对比,如何高效使用mappartition,然后foreachPartition与foreach之间的区别及底层实现原理,这些星球里➕公众号都发过了。

宽依赖,窄依赖等老生常谈的不多说了...基础都不去了解记忆的人面试不过很正常。

来点猛料,广播变量的原理及演变过程,使用场景,使用广播变量一定划算吗?大变量咋办呢?

累加器的原理及应用场景,累加器使用有陷阱么?

序列化,反序列化,闭包,垃圾回收机制(过期rdd的回收,cache的回收等)。这个星球里打过了~

checkpoint如何在spark core应用呢?何种场景适合?源码系列教程。

并行度相关配置,这个星球里也反复强调了,合理设置可以大幅度提高性能。

害怕了吗,还是就此打住吧,太多了~

在星球里➕公众号都有讲过了。

3.spark streaming

spark streaming核心原理大家都知道是微批处理。

基于receiver和direct api两种模式的原理,最好读懂源码。

主要是跟Kafka 结合的两种模式的区别。

direct这种模式如何实现游戏账号转让仅一次处理。checkpoint的使用。

如何进行状态管理,upstatebykey,redis,hbase,alluxio作为状态管理存储设备的时候优缺点,然后就是故障恢复会引起的问题及如何避免等等吧。

合理设置批处理时间,为啥批处理时间不能太大,也不能太小,task倾斜,数据倾斜如何解决。

内存申请,kafka分区设置的依据是啥?

并行度问题,这个也是浪尖反复强调的,彻底理解对spark任务调优帮助很大。

blockrdd和kafkardd的底层区别。

与spark sql和hivecontext结合使用。

广播变量的使用及释放机制等。

动态分区发现和topic发现机制。

executor存活监控,task执行情况监控,未处理队列积累的健康告警(非常重要)等价于对lagsize的监控告警。

小文件问题,星球里文章很详细。根源上避免才是王道。顺便提一句:为啥namenode那么怕小文件呢?

作为7*24小时的应用程序,如何进行监控告警及故障自动恢复~

可怕的内容,多的一笔,拿着手机一个字一个字打,好累。

4.spark sql

在数仓的领域,实时处理都用它,而且structured streaming也逐步依赖于sql引擎了。

常见算子的使用及理解,并行度问题,大小表join,如何广播小表。

join,group by等数据倾斜如何发现及处理方法,这个浪尖还专门录制过视频,星球里球友应该都知道,不知道回去翻看一下。

常见的存储格式,parquet,txt,json,orc对比及对性能的影响。

调优大部分也是针对并行度,文件大小,数据倾斜,task倾斜,内存和cpu合理设置等。

5.structured streaming

这个我也系统整理了案例,分享到了星球里,要是没用过的话,建议用一下。

动态表,增量sql引擎,仅一次处理,维表join等非常好用,watermark,还有就是繁杂的join 机制。

当然限制还是很多的,期待后续版本。

spark streaming在spark 2.4的时候都没更新了,后面就主推sql引擎相关内容了,还是值得期待的。

不过话虽这么说,我觉得flink也相对好用,就是可能bug多些,新版本好点。

目录
相关文章
|
13天前
|
SQL 分布式计算 监控
Sqoop数据迁移工具使用与优化技巧:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入解析Sqoop的使用、优化及面试策略。内容涵盖Sqoop基础,包括安装配置、命令行操作、与Hadoop生态集成和连接器配置。讨论数据迁移优化技巧,如数据切分、压缩编码、转换过滤及性能监控。此外,还涉及面试中对Sqoop与其他ETL工具的对比、实际项目挑战及未来发展趋势的讨论。通过代码示例展示了从MySQL到HDFS的数据迁移。本文旨在帮助读者在面试中展现Sqoop技术实力。
26 2
|
13天前
|
监控 负载均衡 Cloud Native
ZooKeeper分布式协调服务详解:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析ZooKeeper分布式协调服务原理,涵盖核心概念如Server、Client、ZNode、ACL、Watcher,以及ZAB协议在一致性、会话管理、Leader选举中的作用。讨论ZooKeeper数据模型、操作、会话管理、集群部署与管理、性能调优和监控。同时,文章探讨了ZooKeeper在分布式锁、队列、服务注册与发现等场景的应用,并在面试方面分析了与其它服务的区别、实战挑战及解决方案。附带Java客户端实现分布式锁的代码示例,助力提升面试表现。
30 2
|
13天前
|
数据采集 消息中间件 监控
Flume数据采集系统设计与配置实战:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入探讨Apache Flume的数据采集系统设计,涵盖Flume Agent、Source、Channel、Sink的核心概念及其配置实战。通过实例展示了文件日志收集、网络数据接收、命令行实时数据捕获等场景。此外,还讨论了Flume与同类工具的对比、实际项目挑战及解决方案,以及未来发展趋势。提供配置示例帮助理解Flume在数据集成、日志收集中的应用,为面试准备提供扎实的理论与实践支持。
25 1
|
1月前
|
消息中间件 NoSQL 网络协议
Java面试知识点复习​_kaic
Java面试知识点复习​_kaic
|
5天前
|
数据可视化 Python
Python模型评估与选择:面试必备知识点
【4月更文挑战第17天】本文深入探讨了Python模型评估与选择在面试中的关键点,包括性能度量、过拟合与欠拟合识别、模型比较与选择、模型融合和偏差-方差权衡。强调了避免混淆评估指标、忽视模型验证和盲目追求高复杂度模型的常见错误,并提供相关代码示例,如交叉验证、网格搜索和超参数调优。通过理解这些概念和技巧,可在面试中展示出色的数据科学能力。
31 12
|
13天前
|
机器学习/深度学习 分布式计算 BI
Flink实时流处理框架原理与应用:面试经验与必备知识点解析
【4月更文挑战第9天】本文详尽探讨了Flink实时流处理框架的原理,包括运行时架构、数据流模型、状态管理和容错机制、资源调度与优化以及与外部系统的集成。此外,还介绍了Flink在实时数据管道、分析、数仓与BI、机器学习等领域的应用实践。同时,文章提供了面试经验与常见问题解析,如Flink与其他系统的对比、实际项目挑战及解决方案,并展望了Flink的未来发展趋势。附带Java DataStream API代码样例,为学习和面试准备提供了实用素材。
35 0
|
14天前
|
分布式计算 资源调度 监控
Hadoop生态系统深度剖析:面试经验与必备知识点解析
本文深入探讨了Hadoop生态系统的面试重点,涵盖Hadoop架构、HDFS、YARN和MapReduce。了解Hadoop的主从架构、HDFS的读写流程及高级特性,YARN的资源管理与调度,以及MapReduce编程模型。通过代码示例,如HDFS文件操作和WordCount程序,帮助读者巩固理解。此外,文章强调在面试中应结合个人经验、行业动态和技术进展展示技术实力。
|
17天前
|
缓存 NoSQL 定位技术
深入探索Redis:面试中必须掌握的关键知识点
深入探索Redis:面试中必须掌握的关键知识点
|
2月前
|
数据采集 分布式计算 Linux
Spark实时(数据采集)项目小知识点--sed -i命令详解及入门攻略
Spark实时(数据采集)项目小知识点--sed -i命令详解及入门攻略
111 0
|
2月前
|
存储 缓存 索引
【数据结构入门精讲 | 第十四篇】散列表知识点及考研408、企业面试练习(1)
【数据结构入门精讲 | 第十四篇】散列表知识点及考研408、企业面试练习(1)
25 0

相关实验场景

更多