第4章 Hadoop与MapReduce:HDFS原理、MapReduce执行流程、数据倾斜处理
本章聚焦大数据面试三大核心模块:HDFS底层读写机制、MapReduce完整执行链路、数据倾斜实战处理。考察重点从原理认知向「原理 + 实战 + 调优」三角能力模型迁移。以下通过流程图、回答框架与项目模板,帮助你建立可复用的面试表达结构。
💡 章节核心能力模型:HDFS读写原理(30%)+ MapReduce执行流程(30%)+ 数据倾斜定位与解决(40%)。面试中数据倾斜出现频率最高,且通常要求结合项目实例回答。
❓ 请简述HDFS的读写流程?
🎯 面试官考察点:对分布式文件系统底层交互机制的理解程度;是否清楚NameNode / DataNode 角色分工;能否讲出副本策略与容错细节。
📋 回答框架
| 步骤 | 内容 |
|---|---|
| ① 发起请求 | 客户端调用 DistributedFileSystem.create() 向 NameNode 发起写请求 |
| ② 元数据检查 | NameNode 检查权限、路径是否存在,返回可用的 DataNode 列表 |
| ③ 管道建立 | 客户端与首个 DataNode 建立 Pipeline,按序连接后续节点 |
| ④ 分块写入 | 按 128MB 分块,数据包依次发送,每块自动复制 3 副本 |
| ⑤ 确认关闭 | 写入完成后 DataNode 向 NameNode 汇报块信息,客户端关闭流 |
✏️ 简短示例回答
HDFS写入时,客户端先向NameNode请求上传,NameNode返回目标DataNode列表。客户端与首个DataNode建立管道,按128MB分块依次写入,每块自动复制3副本。写入完成后DataNode向NameNode汇报元数据。读取时客户端查询NameNode获取数据块位置,然后从DataNode并行读取。
🔍 可能追问:NameNode宕机如何恢复?如何处理大量小文件?HDFS 2.x与3.x的差异?EC模式了解吗?
⚠️ 避坑提醒:不要只背流程步骤,一定要强调副本放置策略(机架感知)和容错机制(ACK/重试)。面试官追问时往往会深入这些细节。