夜雨聆风学习资料网

ARTICLE · 1081113

Hadoop 源码学习手册 04 · HDFS:把大文件

Hadoop 源码学习手册 04 · HDFS:把大文件

Hadoop 源码学习手册 04 · HDFS:把大文件

一台机器装不下 TB 级大文件,HDFS 就把文件拆成 128MB 的块,分散塞进几百台机器。NameNode 只记目录,DataNode 才是放数据的书架。

NameNode 内存里跑着四个组件。FSNamesystem 拿全局锁,BlockManager 盯着副本够不够。每次变更都先写日志再改内存,重启回放日志就能恢复。FSImage 是某个时刻的全量快照,日常靠 EditLog 记增量。

写文件分四步。Client 先在 NameNode 建节点拿到目标 DataNode 列表。接着把数据切成 64KB 的包,在三个节点间流水线转发。等所有节点逐级回传确认,最后靠 DataNode 心跳汇报闭环。

读文件时,Client 先去问 NameNode 拿块位置地图。然后挑距离最近的 DataNode 直连读取,边读边校验。NameNode 永远不碰数据流,只管元数据,不然早被带宽压垮了。

三副本太费磁盘,纠删码用数学算法把开销降到 1.4 倍。代价是恢复数据得多算一道题,CPU 会累点。

原文Hadoop 源码学习手册 04 · HDFS:把大文件拆成块存到多台机器|口袋通识馆
山西,4小时前,

相关学习资料