选型

HDFS

你可能会说

面试总问 HDFS,可我们公司的数据早就放对象存储了,它还有用吗?

为大文件设计的分布式文件系统文件切成固定大小的块,分散存到多台机器上,每块存多份副本;靠「移动计算而不是移动数据」支撑离线批处理。它擅长吞吐,不擅长低延迟和小文件。
也常被叫作Hadoop 分布式文件系统Hadoop
先问一句要存超大文件做离线?
默认HDFS→擅长顺序大文件→别用小文件/低延迟
成熟度暂缓

什么时候选它

  • 离线批处理的数据底座,配合 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 占元数据,小文件多会耗尽内存并拖慢启动。
  • 问:为什么说「移动计算不移动数据」?
    答:数据量大,把计算任务调度到数据所在节点,避免跨网络搬运。
延伸阅读 · 权威出处