HDFS
你可能会说
面试总问 HDFS,可我们公司的数据早就放对象存储了,它还有用吗?
为大文件设计的分布式文件系统文件切成固定大小的块,分散存到多台机器上,每块存多份副本;靠「移动计算而不是移动数据」支撑离线批处理。它擅长吞吐,不擅长低延迟和小文件。
也常被叫作Hadoop 分布式文件系统Hadoop
什么时候选它
- 离线批处理的数据底座,配合 Spark / MapReduce
- 超大盘文件、以顺序扫描为主的日志和明细
- 需要多副本容错的集群内高吞吐读写
- 已有 Hadoop 生态:Hive、YARN、历史任务
什么时候别选
- 大量小文件:元数据会压垮 NameNode
- 低延迟随机读写,这不是它的设计目标
- 新项目:对象存储 + 数据湖格式(Iceberg / Hudi)通常更省事
容易混在一起 · 怎么分
HDFS≠对象存储
HDFS 是集群文件系统,计算与存储耦合、需要运维;对象存储弹性免运维,按对象存取。
HDFS≠数据库
它只存文件,没有表、索引和 SQL;那层要靠 Hive / Spark。
HDFS≠本地磁盘
多副本、跨机容错,代价是网络和运维成本。
Q面试会问什么
- 问:HDFS 的架构?
答:NameNode 管元数据,DataNode 存数据块;块默认 128MB、3 副本;2.x 起用 JournalNode 和 standby NameNode 做 HA。 - 问:为什么不适合小文件?
答:每个文件、每个块都在 NameNode 占元数据,小文件多会耗尽内存并拖慢启动。 - 问:为什么说「移动计算不移动数据」?
答:数据量大,把计算任务调度到数据所在节点,避免跨网络搬运。
延伸阅读 · 权威出处