Hadoop 高频面试题及详细答案(企业实战版)_第1页
Hadoop 高频面试题及详细答案(企业实战版)_第2页
Hadoop 高频面试题及详细答案(企业实战版)_第3页
Hadoop 高频面试题及详细答案(企业实战版)_第4页
Hadoop 高频面试题及详细答案(企业实战版)_第5页
已阅读5页,还剩4页未读, 继续免费阅读

下载本文档

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

文档简介

Hadoop高频面试题及详细答案(企业实战版)适用场景:大数据开发面试、校招笔试、岗位复试、技术复盘题库说明:本套题目均为互联网、大厂、传统企业大数据岗位高频真题,覆盖Hadoop核心组件HDFS、YARN、MapReduce,包含概念、原理、流程、调优、故障排查、面试实操问答,答案贴合生产环境,通俗易懂、直击考点。一、基础概念面试题1.简单介绍一下Hadoop是什么,核心组件有哪些?参考答案:Hadoop是一款开源的、分布式的海量数据存储与计算框架,主打高可靠、高可用、可横向扩展,主要用于处理TB、PB级别的海量离线数据,是大数据生态的基础核心框架。Hadoop三大核心组件:1.HDFS:分布式文件系统,负责海量数据的分布式存储,解决大数据持久化存储问题;2.YARN:资源调度与任务管理框架,负责集群服务器资源分配、任务调度、作业监控;3.MapReduce:分布式离线计算引擎,负责海量数据的批量离线计算、数据清洗、统计分析。除此之外,Hadoop通用辅助组件还包含Common公共工具包,为另外三大组件提供基础工具支持。2.Hadoop的优势和缺点分别是什么?参考答案:优势:一是高扩展性,集群可以通过新增节点的方式横向扩容,轻松支撑海量数据增长;二是高可靠性,数据多副本存储,单个节点故障不会导致数据丢失;三是低成本,基于普通廉价服务器搭建集群,无需高端硬件设备;四是高容错性,支持节点故障自动恢复、任务失败自动重试;五是开源生态完善,适配Spark、Hive、HBase、Flink等绝大多数大数据组件。缺点:仅支持离线批量计算,延迟高,不适合实时、秒级的数据处理场景;小文件处理能力弱,大量小文件会占用大量元数据内存,拖累集群性能;任务调度粒度较粗,实时资源抢占、精细化调度能力不足。3.Hadoop1.x、2.x、3.x的核心区别是什么?参考答案:1.x版本:架构单一,只有HDFS和MapReduce两大组件,MapReduce既负责计算又负责资源调度,耦合性极高,无法运行其他计算框架,扩展性极差,目前已彻底淘汰。2.x版本:最大革新是拆分了资源调度和计算引擎,新增YARN组件专门负责资源调度,MapReduce仅作为计算引擎,实现解耦,集群可运行Spark、Flink等多种计算框架;同时支持HDFS高可用,解决了NameNode单点故障问题,是企业使用最久的稳定版本。3.x版本:优化了底层架构,默认副本数由3改为2,节省磁盘资源;支持纠删码存储,进一步降低存储成本;优化NameNode内存占用,支持更大规模集群;修复大量旧版本bug,提升集群稳定性和并发处理能力。二、HDFS核心面试题1.简述HDFS的架构及各个角色的作用参考答案:HDFS采用主从架构,核心角色分为NameNode、DataNode、SecondaryNameNode。NameNode(主节点):整个HDFS的核心管理节点,不存储真实业务数据,只维护文件系统元数据,包括文件名、文件路径、权限、文件块存储位置等。同时负责接收客户端的读写请求、分配数据块存储位置、管理副本策略。DataNode(从节点):集群工作节点,负责存储真实的文件数据块,定期向NameNode上报心跳和块信息,响应客户端的读写请求,执行数据块的存储、复制、删除操作。SecondaryNameNode:并非NameNode的备用节点,核心作用是定期合并NameNode的fsimage和edits日志,压缩归档历史日志,减轻NameNode内存压力,辅助实现元数据备份,故障时可作为恢复数据源。2.HDFS的数据块默认大小是多少,为什么设置这么大?参考答案:Hadoop2.x默认数据块大小128M,3.x延续该默认配置。设置大区块的核心原因:第一,减少元数据存储压力。数据块越大,文件拆分后的块数量越少,NameNode需要维护的元数据信息就越少,避免内存溢出;第二,降低寻址开销。海量数据场景下,磁盘寻址时间远大于数据读取时间,大区块可以减少寻址次数,提升整体读取效率;第三,减少网络传输开销,适配批量大数据读写场景。3.HDFS的副本机制是什么,默认副本数是多少,副本存放策略?参考答案:副本机制是HDFS高可靠的核心机制,文件上传时会自动拆分数据块,并为每个数据块生成多个副本,防止单节点故障导致数据丢失。Hadoop2.x默认副本数3个,3.x默认2个。副本存放策略(经典三副本):第一副本:存放在客户端上传数据的当前节点;第二副本:存放在同一机架的不同节点;第三副本:存放在不同机架的节点;该策略兼顾安全性和读写性能,既避免单机架故障导致数据全部丢失,又减少跨机架数据传输的网络损耗。4.解释HDFS的fsimage和edits日志的作用参考答案:二者都是NameNode的元数据持久化文件,保证集群重启后元数据不丢失。fsimage:HDFS文件系统的完整元数据镜像文件,存储某一时刻整个集群的全部目录、文件、块信息,是静态的完整快照。edits:元数据操作日志,动态记录集群运行过程中所有的增删改文件操作。NameNode运行期间,所有新操作都会先写入edits日志,不会直接修改fsimage,保证运行高效。SecondaryNameNode定期拉取edits日志,与旧的fsimage合并生成新的镜像文件,完成元数据的更新归档。5.HDFS高可用(HA)的实现原理参考答案:HDFSHA架构配置两台NameNode,分为Active主节点和Standby备节点,彻底解决单点故障问题。1.ActiveNameNode:对外提供读写服务,负责处理客户端所有请求,生成新的edits日志;2.StandbyNameNode:不对外提供服务,实时同步Active节点的元数据和edits日志,保持数据完全一致;3.Zookeeper协调调度:通过ZK实现故障自动转移,实时监控两台NameNode状态;4.故障切换:当Active节点宕机,ZK自动检测故障,触发Standby节点切换为Active状态,接管集群所有服务,切换过程业务无感知。同时集群配置JournalNode集群,共享存储edits日志,保证双节点元数据实时同步。6.HDFS读写流程简述参考答案:写入流程:1.客户端发起文件写入请求,向NameNode申请上传权限;2.NameNode校验权限、文件状态,返回可用的DataNode节点列表;3.客户端将文件拆分为数据块,按副本策略依次写入对应DataNode;4.数据以流水线方式同步副本,所有副本写入完成后,告知NameNode更新元数据;5.最终确认文件写入成功。读取流程:1.客户端向NameNode发起文件读取请求;2.NameNode查询元数据,返回文件对应的所有数据块及存储节点位置;3.客户端优先读取本地、同机架节点的数据块,减少网络消耗;4.依次读取所有数据块,拼接为完整文件,完成读取。7.HDFS小文件问题及解决方案参考答案:小文件危害:每个小文件都会生成一条元数据,大量小文件会耗尽NameNode内存,导致集群卡顿、响应变慢;同时小文件读写IO效率极低,严重影响集群整体性能。生产解决方案:1.数据写入前预处理,通过程序合并小文件,批量写入集群;2.使用Hive、Spark定时合并目录下的小文件;3.开启HDFS归档机制,将大量小文件打包归档存储;4.调整业务逻辑,规范数据输出格式,避免频繁生成零散小文件。三、YARN核心面试题1.简述YARN的架构和各角色作用参考答案:YARN同样采用主从架构,核心角色包括ResourceManager、NodeManager、ApplicationMaster、Container。ResourceManager(RM,全局资源调度器):集群主节点,负责统一管理整个集群的CPU、内存资源,接收客户端任务提交请求,分配资源、调度任务,监控所有节点和作业状态。NodeManager(NM,节点资源管理器):每个数据节点部署一个,负责管理当前节点的资源,定时向RM上报节点资源使用情况、健康状态,启动和监控本地Container任务。ApplicationMaster(AM,应用管理者):每个任务提交后都会生成一个独立AM,负责向RM申请资源,和NM协作启动任务、监控任务运行、处理任务失败重试。Container:YARN资源的最小封装单位,封装了CPU、内存资源,所有任务都必须运行在Container中。2.YARN的任务执行流程参考答案:1.客户端向ResourceManager提交计算任务;2.RM接收请求,分配一个空闲节点启动ApplicationMaster;3.AM启动后,向RM申请本次任务所需的CPU、内存资源;4.RM根据集群资源情况分配资源,对应节点的NodeManager创建Container;5.AM驱动Container运行具体计算任务;6.任务运行过程中,NM实时监控任务状态,任务完成后释放资源,AM注销,作业结束。3.YARN的调度器有几种,区别是什么?参考答案:YARN内置三种核心调度器:FIFO调度器、容量调度器(CapacityScheduler)、公平调度器(FairScheduler)。1.FIFO调度器:先进先出,按照任务提交顺序依次执行,简单高效,但大任务会阻塞后续所有小任务,仅适用于测试单机集群,生产环境不使用。2.容量调度器(默认):支持多队列配置,为每个队列分配固定资源容量,队列内部采用FIFO调度,多队列任务并行执行,适合企业多业务、多团队隔离场景,稳定性强,是生产默认调度器。3.公平调度器:不预设固定容量,动态分配资源,保证所有运行任务平均分配集群资源,避免大任务独占资源,适合任务多、并发高、追求资源均衡的场景。4.YARN常见报错及排查思路参考答案:1.资源不足报错:多为任务申请的内存、CPU超过集群剩余资源,或单节点资源配置过小。排查方式:查看队列资源上限、调整任务提交资源参数、扩容集群节点。2.任务超时失败:数据量过大、计算逻辑复杂、节点性能不足导致任务运行超时。排查方式:优化计算逻辑、增大任务超时时间、拆分大任务。3.Container内存溢出:任务内存申请不足,数据倾斜导致单个任务处理数据量过大。排查方式:调高Container内存参数、处理数据倾斜、优化shuffle阶段数据。四、MapReduce核心面试题1.简述MapReduce的运行原理和完整流程参考答案:MapReduce是分布式离线计算模型,核心分为Map阶段和Reduce阶段,整体流程分为数据读取、Map处理、Shuffle洗牌、Reduce聚合、结果输出。1.Input读取阶段:从HDFS读取数据,按数据块切片,生成输入分片,每个分片对应一个Map任务;2.Map阶段:自定义Map逻辑,读取每行数据,处理后输出<key,value>键值对;3.Shuffle阶段(核心):对Map输出数据进行分区、排序、合并、分组,将相同key的数据分发到同一个Reduce节点;4.Reduce阶段:接收分组后的数据集,执行自定义聚合、统计逻辑,完成数据汇总计算;5.Output输出阶段:将Reduce最终结果写入HDFS文件,完成计算。2.详细说说Shuffle机制,Shuffle的执行流程参考答案:Shuffle是MapReduce的核心流程,作用是将Map端无序的输出数据,按照key重新分区、排序、分组,有序传输到Reduce端,是分布式聚合计算的关键。完整流程:1.Map任务输出数据,先写入环形内存缓冲区;2.缓冲区达到阈值后,触发溢写,将数据写入本地磁盘,生成临时溢写文件;3.所有Map任务结束后,合并所有溢写文件,完成分区和全局排序;4.Reduce端通过网络拉取对应分区的所有数据;5.Reduce端对拉取的数据再次合并排序、分组,相同key的value形成迭代器,供Reduce函数遍历计算。3.MapReduce数据倾斜是什么,如何解决?参考答案:数据倾斜定义:任务运行过程中,少数Reduce节点分配到远超其他节点的数据量,导致部分任务运行极慢,整体作业卡在最后几个任务,耗时大幅增加,严重时直接任务失败。核心原因是部分key的数据量异常集中。生产解决方案:1.预处理过滤:提前清洗无效、空值、垃圾key数据,从源头减少数据集中问题;2.加盐打散:对倾斜key添加随机前缀,拆分大key数据,分散到多个Reduce节点计算,最后二次聚合;3.自定义分区:手动调整分区规则,将热点key均匀分配到不同分区;4.大小任务拆分:单独处理倾斜数据,正常数据正常聚合,分开计算后合并结果。4.MapReduce的combiner作用是什么?和Reducer的区别?参考答案:Combiner作用:属于Map端局部聚合器,在Map任务输出数据后、Shuffle之前,对当前节点的输出数据先做一次局部聚合,减少磁盘溢写数据量和网络传输数据量,大幅提升任务运行效率。核心区别:1.执行位置不同:Combiner运行在Map端本地,Reducer运行在全局聚合阶段;2.作用范围不同:Combiner仅聚合单节点数据,Reducer聚合全局所有节点数据;3.执行次数不同:Combiner可执行多次,Reducer仅执行一次全局聚合;4.使用限制:Combiner仅适用于求和、计数等幂等聚合逻辑,不适合求平均值、中位数等无法局部聚合的场景。5.MapReduce任务卡顿、运行慢的常见原因及调优思路参考答案:常见原因:数据倾斜、小文件过多、Shuffle磁盘IO频繁、资源配置不足、数据重复计算。核心调优思路:1.优化数据源,合并小文件,减少Map任务数量;2.开启Combiner局部聚合,减少Shuffle数据传输量;3.调优环形缓冲区大小、溢写阈值,减少磁盘溢写次数;4.合理配置Map、Reduce任务的内存和CPU资源;5.处理数据倾斜,打散热点key,均衡任

温馨提示

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

评论

0/150

提交评论