大数据岗位经典面试题及详细答案(真实面试口语版)_第1页
大数据岗位经典面试题及详细答案(真实面试口语版)_第2页
大数据岗位经典面试题及详细答案(真实面试口语版)_第3页
大数据岗位经典面试题及详细答案(真实面试口语版)_第4页
大数据岗位经典面试题及详细答案(真实面试口语版)_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大数据岗位经典面试题及详细答案(真实面试口语版)一、基础概念类(必问)1、你理解的大数据是什么?和传统数据有什么区别?参考答案:我理解的大数据,就是体量极大、类型繁杂、产生速度快、价值密度低的数据集合,核心不是数据多大,而是怎么从海量杂乱数据里挖掘有效价值。和传统数据对比,区别主要在四点:第一是体量不同,传统数据基本是GB、TB级别,大数据都是PB、EB级别,普通数据库扛不住;第二是数据类型不同,传统数据以结构化数据为主,比如表单、数据库表;大数据包含结构化、半结构化、非结构化数据,像日志、图片、视频、文本都算;第三是处理速度不同,传统数据离线处理、延迟高;大数据支持实时、秒级处理,适配业务实时需求;第四是价值特点不同,传统数据价值集中、精准;大数据数据量大但有效信息少,需要清洗、筛选、建模才能提炼价值。2、大数据的4V特征详细说说?参考答案:四个核心特征分别是大量、高速、多样、低价值密度:一是数据量大(Volume),数据采集、存储的量级远超传统业务数据,日常业务日志、用户行为数据都是持续海量新增;二是处理高速(Velocity),数据产生和流转速度极快,比如电商实时下单、直播流量数据,需要实时采集、实时计算,对吞吐和延迟要求很高;三是类型多样(Variety),不局限于规整的数据库数据,还包含文本、音频、视频、埋点日志、地理位置等各类非规整数据;四是价值密度低(Value),海量数据里绝大部分是无效冗余数据,需要通过清洗、聚合、分析,过滤杂质后才能提取出支撑业务的有效价值。二、Hadoop核心组件面试题1、简单介绍Hadoop三大核心组件及各自作用参考答案:Hadoop核心是三个组件,分工很明确,分别负责存储、资源调度、离线计算:第一,HDFS,分布式文件系统,专门负责海量数据的存储。它把大文件拆分成小块,分散存储在集群不同节点上,同时做副本备份,既能突破单节点存储上限,又能保证数据不丢失、容错性高。第二,YARN,资源调度框架,相当于整个集群的“管家”。主要负责管理集群的CPU、内存资源,接收各个计算任务的请求,分配资源、调度任务运行,同时监控任务状态,避免资源抢占、节点过载。第三,MapReduce,分布式离线计算引擎。采用分而治之的思想,分为Map和Reduce两个阶段,Map负责分片、读取数据、预处理数据,Reduce负责聚合、汇总结果,专门处理海量离线数据的统计分析任务。2、HDFS的读写流程简单说一下参考答案:写入流程:客户端先向NameNode发送写入请求,NameNode校验权限、检查文件是否存在,确认后返回可写入的节点列表。客户端将文件切块,依次把数据块写入第一个DataNode,第一个节点同步数据到第二个、第三个副本节点,每写完一个块就确认一次,全部写入完成后,客户端告知NameNode写入完成,更新文件元数据。读取流程:客户端先请求NameNode获取文件的元数据,知道每个数据块对应的存储节点。然后客户端直接就近访问对应的DataNode读取数据块,优先读取本地、同机房节点数据,提升读取速度,最后拼接所有数据块,还原完整文件。3、NameNode和DataNode的区别与职责参考答案:NameNode是主节点,负责管理整个HDFS的元数据,也就是文件名、文件路径、数据块存储位置这些信息。它不存储真实业务数据,只做管理调度,同时处理客户端的读写请求、维护副本机制、监控节点状态。DataNode是从节点,是真正存储真实数据的节点。负责存储具体的数据块,定时向NameNode上报心跳和块信息,执行数据读写、副本同步、数据校验的工作。简单来说,NameNode是总指挥,管调度和台账;DataNode是执行节点,管实际存数据、跑读写。三、Spark核心面试题(高频)1、Spark和MapReduce的区别,为什么Spark更快?参考答案:两者最大的区别是中间数据存储方式不同,这也是Spark更快的核心原因。MapReduce所有任务的中间结果都会落地磁盘,每一轮Map、Reduce都要读写磁盘,频繁IO耗时很高,只适合慢速离线任务。Spark默认把中间计算结果缓存在内存里,只有内存不足时才会落地磁盘,大大减少了磁盘IO开销。同时Spark支持DAG有向无环图调度,会自动优化任务依赖,减少重复计算。除此之外,Spark支持实时计算、交互式查询、流式计算,场景更丰富;MapReduce只能做纯离线批处理。不过MapReduce稳定性更强,适合超大规模超长时间的离线任务。2、什么是RDD?RDD的五大特性、惰性求值怎么理解?参考答案:RDD是Spark的核心数据结构,叫弹性分布式数据集,是一个只读的、可分区、可并行计算的数据集合。五大核心特性:可分区、可计算、依赖血缘、可选分区器、可选优先位置。简单说就是数据可以拆分并行计算、上下游任务有依赖关系、支持精准分区、优先就近计算,容错性和并行性都很好。惰性求值是Spark的核心机制,意思是转换操作不会立即执行,只有触发行动操作才会真正执行任务。比如map、filter、flatMap这些都是转换算子,只是记录任务依赖和逻辑,不跑计算;count、collect、save这类行动算子触发后,Spark才会根据依赖生成任务、提交集群执行。这样可以提前优化任务链路,避免无效计算,提升整体效率。3、Spark宽窄依赖怎么区分,有什么意义?参考答案:区分宽窄依赖主要看父RDD的分区是否只对应子RDD的一个分区。窄依赖:父分区的数据只被一个子分区使用,不需要洗牌,比如map、filter、union算子。任务可以在本地完成,效率高,容错简单,单个分区出错只需要重算当前分区。宽依赖:父分区的数据会被多个子分区使用,必须经过shuffle洗牌,比如groupBy、reduceByKey、join算子。涉及跨节点数据传输,开销大,一旦出错需要重算整个Stage。实际工作中,我们会尽量多用窄依赖算子,减少shuffle操作,以此提升任务运行速度。四、Flink实时计算面试题1、Flink和SparkStreaming的核心区别参考答案:核心区别是计算模型和延迟级别不同。SparkStreaming是微批处理,把实时数据流切成固定时间片的小批次,按批次计算,最小延迟一般是秒级,本质还是批处理,只是批次很小。劣势是延迟不够低,处理乱序数据、晚到数据的能力比较弱。Flink是真正的流式计算,以一条条数据为单位持续处理,延迟可以达到毫秒级。同时Flink自带完善的状态管理、水印机制,能很好处理数据流的乱序、延迟、晚到数据,实时性、准确性都更高。现在企业实时业务基本都用Flink,SparkStreaming大多只用来做低要求的准实时统计。2、Flink的水印(Watermark)是什么,作用是什么?参考答案:水印是Flink用来处理乱序数据流、定义窗口关闭时机的核心机制。实际业务中,数据很难严格有序,网络延迟、节点波动都会导致后产生的数据先到、先产生的数据晚到。如果直接按时间关闭窗口,会丢失晚到数据,统计结果不准。水印可以理解为一个时间进度标记,代表“小于这个时间的数据基本都已经到齐”。我们可以设置固定的水印延迟,预留时间接收晚到数据,当水印推进到窗口结束时间时,才会触发窗口计算,既保证数据完整性,又避免窗口无限等待。五、Kafka面试高频题1、Kafka的分区、副本、偏移量分别是什么?作用是什么?参考答案:分区(Partition):Kafka的核心并行单元。一个主题可以分为多个分区,数据分散存储在不同分区,分区越多,读写并行度越高,吞吐量越大,是Kafka高并发的关键。副本(Replica):用来保证数据高可用。每个分区有一个主副本和多个从副本,生产者只往主副本写数据,从副本同步数据。如果主节点故障,从副本会自动升级为主节点,保证数据不丢失、服务不中断。偏移量(Offset):每条消息在分区中的唯一序号,相当于数据的坐标。消费者通过偏移量记录自己的消费位置,重启、断线后可以从上次的位置继续消费,不会重复消费也不会漏消费。2、Kafka为什么速度快、吞吐量高?参考答案:主要是四个核心原因:第一是顺序读写,Kafka数据追加写入文件末尾,没有随机读写的磁盘开销,磁盘顺序读写速度远超随机读写;第二是零拷贝机制,数据不需要经过应用程序缓冲区,直接从磁盘拷贝到网卡传输,减少数据拷贝次数和内存开销;第三是批量处理,生产者、消费者都会攒一批数据再读写,减少频繁网络请求和IO次数;第四是分区并行,多分区可以同时读写,极大提升整体并发吞吐量。六、数据仓库与数仓建模面试题1、什么是数仓?和业务数据库有什么区别?参考答案:数据仓库是专门用来存储、清洗、聚合、分析历史业务数据的数据库,核心服务于数据分析、报表统计、业务决策,不处理实时业务交易。和业务数据库的区别很清晰:业务数据库面向交易,支持增删改查,要求高实时、高并发、数据一致性强,存储的是当前最新的业务数据;数仓面向分析,基本只做插入和查询,很少修改删除,存储的是全量历史数据,注重数据整合、分层、统计分析,用来产出报表、指标、用户画像等业务结果。2、数仓分层(ODS、DWD、DWS、ADS)各自作用参考答案:常规数仓四层分层,每层职责清晰,避免数据混乱、重复计算:ODS层:原始数据层,原样同步业务库、日志的原始数据,不做处理,保留完整原始数据,用于回溯和兜底。DWD层:明细数据层,对ODS原始数据做清洗、去重、过滤脏数据、字段规范化,保留高质量明细数据,是后续计算的基础。DWS层:聚合中间层,基于明细数据,按用户、商品、区域等维度做轻度聚合,产出常用中间指标,避免上层重复计算,提升查询效率。ADS层:应用指标层,面向业务最终需求,聚合产出报表、看板、画像、统计指标,直接供业务系统、数据平台使用。七、实战场景面试题(压轴)1、工作中遇到数据倾斜怎么解决?参考答案:数据倾斜就是任务大部分数据集中在少数几个节点,导致个别任务卡死、整体任务超时、运行缓慢,是大数据开发最常见的问题。我日常会根据不同场景针对性处理:1、参数调优:先开启自适应执行、倾斜参数优化,简单的轻度倾斜可以直接修复;2、过滤脏数据:如果是空值、异常值导致的倾斜,直接提前过滤无效key;3、加盐打散:对热点key添加随机前缀,打散到不同分区计算,最后再聚合合并结果;4、拆分任务:把热点数据单独计算,非热点数据正常计算,最后合并两份结果;5、调整分组聚合逻辑:优先使用combiner预聚合,减少shuffle阶段的数据传输量,缓解倾斜压力。2、实时数据延迟高,怎么排查问题?参考答案:我会从源头到链路逐

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论