HDFS 是参考了 Google GFS 的开源实现。
HDFS 的设计理念看 官方文档。值得注意的有:
- Streaming Data Access:HDFS 是设计给流式数据访问用的。注重数据的吞吐量而不是访问延时。
- Simple Coherency Model:HDFS 上的应用程序在处理文件时,应该是 write-once-read-many 的模型。文件在创建、写入、关闭后,一般情况下不应该被修改。这是实现大吞吐量的基础。
- “Moving Computation is Cheaper than Moving Data”:这点比较 tricky,传统的理解中,数据应该被传输到其他地方做计算;但是在 Hadoop 生态中,是反过来的,计算应该发生在离数据近的地方,从而节省带宽,提高效率。这个过程也会结合数据冗余来实现。