Hadoop 面试题及详细答案.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

Hadoop面试题及详细答案

一、基础概念类

1.什么是Hadoop?它的核心组件有哪些?

答案:Hadoop是一个分布式存储和计算框架,主要用于处理海量数据(TB/PB级),核心优势是高可靠性、高扩展性、高容错性和低成本。

核心组件有3个,对应Hadoop1.x/2.x核心架构(2.x后引入YARN替代1.x的JobTracker/Tracker):

HDFS(HadoopDistributedFileSystem):分布式文件系统,负责海量数据的存储,采用“主从架构”,主节点是NameNode,从节点是DataNode;

MapReduce:分布式计算框架,负责海量数据的处理,核心是“分而治之”,将任务拆分为Map阶段(数据拆分与初步处理)和Reduce阶段(结果汇总);

YARN(YetAnotherResourceNegotiator):资源调度与任务管理框架,负责管理集群的计算资源(CPU、内存),并为各类计算任务(MapReduce、Spark等)分配资源,主节点是ResourceManager,从节点是NodeManager。

2.HDFS的架构是什么样的?各组件的作用是什么?

答案:HDFS采用“主从架构(Master/Slave)”,主要由NameNode、DataNode、SecondaryNameNode三个核心角色组成,还有Client(客户端)用于与HDFS交互。

NameNode(主节点,NN):集群的“大脑”,负责管理文件系统的元数据(文件名、路径、文件与块的映射关系、块的存储节点等),不存储实际数据;同时负责接收客户端的读写请求,协调DataNode工作;

DataNode(从节点,DN):集群的“存储节点”,负责存储实际的数据块(Block),默认一个Block在HDFS中是128MB(可配置),同时响应NameNode的指令,完成数据块的读写、复制、删除等操作;

SecondaryNameNode(次要主节点,SNN):不是NameNode的备份(不能直接替代NN工作),主要作用是辅助NN管理元数据,定期合并NN的编辑日志(EditsLog)和镜像文件(FsImage),生成新的FsImage并发送给NN,减轻NN的负担,同时在NN故障时,可通过SNN生成的FsImage快速恢复NN;

Client:用户操作HDFS的接口,比如通过hadoopfs命令、JavaAPI等与NN交互获取元数据,与DN交互读写数据。

3.什么是MapReduce的Shuffle阶段?它的作用是什么?

答案:Shuffle阶段是MapReduce中连接Map阶段和Reduce阶段的核心环节,简单说就是“将Map输出的键值对,按照一定规则分发、排序、合并后,传递给Reduce阶段”的过程。

具体流程包括Map端的输出收集、排序、合并(Combiner,可选)、分区,以及Reduce端的抓取(Fetch)、合并(Merge)、排序,最终将整理好的键值对交给Reduce函数处理。

作用:保证Reduce阶段能接收并处理到同一Key对应的所有Value,同时通过排序、合并减少数据传输量和Reduce端的处理压力,提升整个计算任务的效率。

二、核心原理类

1.HDFS为什么要设置数据块副本?默认副本数是多少?副本放置策略是什么?

答案:设置副本的核心目的是保证数据的可靠性(容错性)和可用性。当某个DataNode节点故障、磁盘损坏或网络中断时,数据不会丢失,可通过其他节点的副本继续提供服务。

默认副本数是3个。

副本放置策略(默认,基于集群拓扑):

第一个副本:放在客户端所在的节点(如果客户端在集群外,则随机选择一个集群内的节点,优先选择磁盘利用率低、CPU负载低的节点);

第二个副本:放在与第一个副本不同的机架上(跨机架,保证机架故障时数据仍可用);

第三个副本:放在与第二个副本同一机架的不同节点上(同机架,减少跨机架网络传输,提升性能);

如果副本数超过3个,后续的副本会随机分布在集群中,尽量避免集中在同一节点或同一机架。

2.MapReduce中Combiner和Reducer的区别是什么?Combiner什么时候可以用?

答案:核心区别在于工作位置和作用范围:

工作位置:Combiner运行在Map节点本地;Reducer运行在Reduce节点(独立于Map节点);

作用范围:Combiner仅处理单个Map任务的输出结果;Reducer处理所有

文档评论(0)

151****9429 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档