HDFS(Hadoop Distributed File System)是 Hadoop 生态中负责海量数据存储的分布式文件系统。本页围绕 HDFS 的架构模型、数据块机制、读写流程与运维要点展开,配合要点清单与常见问题,帮助你在动手搭建集群之前先建立清晰的知识框架。无论你是刚接触大数据的新手,还是需要回顾细节的开发者,都可以按小节顺序逐步深入。
HDFS 诞生于超大规模数据集的存储需求,它放弃了传统文件系统的部分特性,换取高吞吐与高容错。理解它的设计取舍,比记住命令更重要。
NameNode:管理命名空间与数据块映射,是集群的元数据中枢。
DataNode:实际存储数据块,定期向 NameNode 发送心跳与块报告。
SecondaryNameNode:协助合并编辑日志,缩短重启时的恢复时间。
| 环节 | 写数据 | 读数据 |
|---|---|---|
| 客户端请求 | 向 NameNode 申请创建文件 | 向 NameNode 查询块位置 |
| 数据流向 | 按管道逐级写入多个 DataNode | 就近选择副本直接读取 |
| 确认机制 | 反向逐级回传 ACK 确认 | 读取完成即关闭数据流 |
HDFS 提供与 Linux 风格相近的 shell 命令,熟悉这几个高频操作即可完成大部分日常管理。
hdfs dfs -ls /path 查看目录内容hdfs dfs -put local hdfs 上传本地文件hdfs dfs -get hdfs local 下载文件到本地hdfs fsck / 检查文件系统健康状态默认架构中 NameNode 是单点,生产环境通常启用 HA 方案,通过 Active/Standby 双节点与共享存储实现自动切换。
每个文件、每个块在 NameNode 中都占用内存元数据,海量小文件会显著增加主节点内存压力,建议合并后再上传。
可以。通过 hdfs dfs -setrep 对指定路径调整副本数量,集群会自动完成数据复制或删除。
建议在本地虚拟机或容器中搭建一个三节点的最小集群,依次完成格式化、启动、上传下载与故障模拟,把每个命令背后的机制对应到架构图上,学习效果会明显提升。
进入 HDFS 教程栏目掌握 HDFS 之后,可继续学习 MapReduce 计算模型与 Hive 数据仓库,形成完整的离线处理能力。
返回教程首页