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高频面试题及实战答案

一、基础概念类(入门必问)

问题:Hadoop核心组件有哪些?各自的作用是什么?

答案:核心是三大组件+生态工具。HDFS负责分布式存储,分NameNode(管理元数据,比如文件路径、块信息,不存实际数据)、DataNode(存储真实数据块,默认128M/块)、SecondaryNameNode(辅助NN做元数据checkpoint,不是备用NN,故障时不能直接替换);MapReduce是分布式计算框架,分Map(拆分数据、局部处理,比如过滤、分组)和Reduce(汇总Map结果,输出最终结果);YARN是资源调度平台,ResourceManager(集群资源总调度)、NodeManager(单节点资源管理)、ApplicationMaster(每个任务的资源申请和执行监控);生态里常用的Hive(数据仓库,SQL化查询)、HBase(列存数据库,实时读写)、ZooKeeper(分布式协调,比如HA选举)。

问题:HDFS的副本机制是什么?为什么要这么设计?

答案:默认3副本策略,存放规则是:第一份在提交任务的DataNode(若客户端在集群外,随机选一个节点);第二份在不同机架的另一个节点;第三份和第二份同机架不同节点。好处有三个:一是容错,单个节点或机架故障不会丢数据;二是提升读取性能,客户端能就近读副本;三是负载均衡,避免单节点压力过大。实际生产中副本数可根据数据重要性调整,比如冷数据设2副本省存储。

问题:MapReduce的工作流程(详细说下从数据输入到输出的步骤)?

答案:整个流程分8步左右,不用死记但要讲清关键环节:①输入分片(InputSplit):把输入文件分成若干分片,每个分片对应一个Map任务(分片大小默认和HDFS块一致,128M,避免跨块读);②Map阶段:读取分片数据,按自定义逻辑处理(比如词频统计里的切词、计数),输出key,value键值对;③分区(Partition):按key的哈希值把Map输出分到不同分区,每个分区对应一个Reduce任务;④排序(Sort):每个Map任务内对自己的输出按key排序;⑤合并(Combine):可选步骤,相当于本地Reduce,把相同key的value合并(比如Map输出100个hello,1,Combine后变成hello,100,减少网络传输);⑥归约(Shuffle):把所有Map的相同分区数据拉取到对应的Reduce节点,再次排序合并(归并排序);⑦Reduce阶段:对拉取来的有序数据按key聚合计算,输出最终结果;⑧输出(OutputFormat):把Reduce结果写入HDFS或其他存储。

二、核心原理与故障处理类(中级重点)

问题:NameNode挂了怎么办?如何避免NN单点故障?

答案:首先要区分NN是宕机还是数据损坏。如果是宕机(进程挂了但元数据文件没坏),如果配置了HA(高可用),会自动切换到StandbyNN;如果没开HA,只能手动恢复:用SecondaryNameNode的checkpoint(edits和fsimage合并后的文件),拷贝到NN的数据目录,重启NN,但会丢失从上次checkpoint到宕机之间的元数据(所以生产必须开HA)。HA的实现是用两个NN(Active和Standby),通过JournalNode集群同步元数据日志(edits文件),Standby实时同步,Active挂了后,ZooKeeper会触发选举,Standby升级为Active,同时DataNode会和新的ActiveNN建立连接。另外,NN的元数据文件(fsimage和edits)要做异地备份,防止存储介质损坏。

问题:MapReduce中Shuffle阶段的优化技巧有哪些?

答案:Shuffle是MapReduce的性能瓶颈(网络传输+磁盘IO多),优化主要从这几点入手:①启用Combine:减少Map输出数据量,降低网络传输;②调整分区数:分区数建议等于Reduce任务数,且是集群节点数的整数倍,避免数据倾斜;③压缩:对Map输出和Shuffle传输的数据压缩(用Snappy或LZO算法,压缩比和速度平衡),减少IO和网络带宽占用;④调整缓冲区大小:Map的输出缓冲区(默认100M),当数据达到阈值(默认80%)会溢写到磁盘,可根据内存情况调大(比如200M),减少溢写次数;⑤避免大量小文件:小文件会导致

文档评论(0)

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

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

1亿VIP精品文档

相关文档