文件写入的操作流程,Hadoop 里做得还蛮有讲究的。

块式存储的思路,用得比较巧。HDFS 把文件切成一块块,128MB 一块,每块还会备份个两三份。写入时不是直接写磁盘,而是先从NameNode拿到块的位置,流式写入DataNode。嗯,效率还挺高。

数据是走管道式传输的,也就是你写入一块,它会串行传到多个DataNode上。这种设计虽然看着复杂点,但好处是副本同步得快,出问题也能迅速补上。

写数据的时候,client会先跟NameNode申块,再找出对应的DataNode,按顺序写。每写一段就确认一下。写失败?直接换块重写,逻辑得还算稳。

如果你搞分布式文件系统,Hadoop 的写入机制挺值得参考的。响应快、冗余高,还不太容易丢数据。

想进一步了解的话,可以看看下面这些资料,有的是我之前用过的,还不错:

如果你刚接触HDFS,建议先搭个伪分布式环境试试,能快点上手。