hadoop-hdfs
以下是Hadoop分布式文件系统(HDFS)的核心解析与技术实现:
一、核心架构与组件
-
主从架构设计
- NameNode (主节点):管理文件系统的命名空间(元数据)、数据块映射关系及副本策略,通过内存存储元数据确保高效访问。
- SecondaryNameNode:周期性元数据合并。
- DataNode (从节点):存储实际数据块(默认128MB/256MB),定期向NameNode发送心跳报告和块状态。
- JournalNode (高可用核心):在HA模式下同步NameNode的元数据编辑日志,采用多数派协议(至少N/2+1节点写入成功)保障数据一致性。
-
数据存储优化
- 大块设计:默认块大小128MB(Hadoop 2.x)或256MB(3.x),显著减少元数据量与磁盘寻址开销。
- 多副本机制:默认3副本,跨机架/节点分布,通过机架感知策略提升容错性与读取效率。
- 流式数据访问:针对连续大文件读写优化,牺牲随机写能力以换取高吞吐量(GB/s级)。
二、工作机制
- 写入流程
- 客户端分割文件为块 → 向NameNode申请写入位置 → 通过管线流水线(Pipeline)将数据并发写入多个DataNode,副本落盘后返回确认。
- 读取流程