大数据工程师面试题及答案(企业实操导向).docxVIP

大数据工程师面试题及答案(企业实操导向).docx

  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文档。上传文档
查看更多

大数据工程师面试题及答案(企业实操导向)

一、基础理论与核心技术(10题)

问题:HDFS的NameNode和DataNode核心职责分别是什么?实际部署中如何避免NameNode单点故障?

答案:NameNode负责管理文件系统命名空间、元数据(文件路径、副本数、DataNode存储位置),不存储实际数据;DataNode负责存储数据块、执行读写指令,并向NameNode汇报块状态。避免单点故障的方案:①部署StandbyNameNode,通过JournalNode同步元数据日志,主节点故障时自动切换;②定期备份NameNode的fsimage和edits日志到异地存储,极端情况可手动恢复。

问题:Spark中宽依赖和窄依赖的区别?这两种依赖对DAG调度和容错有什么影响?

答案:窄依赖是子RDD的每个分区只依赖父RDD的一个分区(如map、filter),宽依赖是子RDD的一个分区依赖父RDD的多个分区(如shuffle、groupByKey)。影响:①调度上,窄依赖可连续执行(流水线优化),宽依赖会触发Stage划分(以shuffle为边界);②容错上,窄依赖只需重新计算故障分区的父分区,宽依赖需重新计算所有关联的父分区,因此宽依赖场景下建议开启Checkpoint减少重复计算。

问题:MapReduce的Shuffle阶段具体做了什么?如何优化Shuffle性能?

答案:Shuffle是连接Map和Reduce的核心阶段,分为Map端和Reduce端:①Map端:将Map输出结果按Key哈希分区,写入内存缓冲区,满了之后排序溢写到磁盘,最后合并小文件;②Reduce端:通过HTTP拉取对应分区的数据,合并排序后交给Reduce函数处理。优化方案:①调整缓冲区大小(默认100MB,可增至200-500MB);②启用压缩(Map输出用Snappy压缩,减少IO);③合理设置Reduce任务数(建议为集群CPU核心数的1.5-2倍);④避免大量小文件输入(用CombineTextInputFormat合并)。

问题:什么是数据倾斜?Spark中遇到数据倾斜该如何排查和解决?

答案:数据倾斜是指某几个Task处理的数据量远超其他Task,导致整个Job运行缓慢甚至超时。排查:①查看SparkUI的Stage页面,观察各Task的输入数据量、运行时间差异;②分析数据源,统计Key的分布(用countByKey()抽样查看热点Key)。解决:①热点Key打散:给热点Key加随机前缀(如Key→Key_0、Key_1),先局部聚合再还原Key全局聚合;②调整并行度:增大spark.sql.shuffle.partitions(默认200,根据数据量调整至1000+);③过滤无效数据:移除重复或无意义的热点Key(如NULL值);④广播小表:Join场景中,将小表广播(broadcastjoin),避免Shuffle。

问题:Hive的内部表和外部表有什么区别?实际业务中如何选择?

答案:区别:①数据归属:内部表的数由Hive管理,删除表时会同时删除底层数据;外部表的数存储在用户指定路径,删除表仅删除元数据,数据保留。②元数据与数据关联性:内部表元数据和数据强绑定,外部表松绑定。选择原则:①选外部表:业务数据需多工具共享(如同时供Hive、Spark、Flink访问)、数据需要长期保留(避免误删表导致数据丢失)、数据来自外部系统(如日志采集系统);②选内部表:临时计算结果(如中间表、汇总表)、数据仅用于Hive分析,无需共享。

问题:Flink的Checkpoint和Savepoint有什么区别?各自的使用场景是什么?

答案:区别:①触发方式:Checkpoint由Flink自动周期性触发(默认开启),Savepoint需手动触发;②用途:Checkpoint用于故障恢复,数据格式内部化,不保证跨版本兼容;Savepoint基于Checkpoint机制,数据格式稳定,支持版本兼容,用于手动备份、升级集群、代码迭代。场景:①Checkpoint:日常运行中自动容错,配置合适的间隔(如1分钟)和超时时间;②Savepoint:①系统升级或重启前备份状态;②业务代码修改后,恢复历史状态继续运行;③长期停机后恢复作业。

问题:什么是维度建模?星型模型和雪花模型的区别?实际建模中优先选哪种?

答案:维度建模是面向分析场景的建

文档评论(0)

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

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

1亿VIP精品文档

相关文档