HDFS的实现机制

参考以上这张图,实际上我们客户端访问HDFS里面的内容时,并不需要真实知道内容存在于服务器的内容的真实路径,我们只需要知道一个虚拟路径就可以,比如最上面的hdfs://weekend110:9000/wordcount/input/test.txt,而HDFS内部已经将虚拟路径和真实路径的映射关系对应好了。

比如,现在我们想把一个512M的文件切成4块存储在HDFS中,假设HDFS有一个NAMENODE,三个DATANODE,那么DATANODE01存1,DATANODE02存2,DATANODE03存3,DATANODE03存4(假设这么存),并且为了防止一台机器宕机,在每一个DATANODE上面还会存储其他文件块的副本。但是这么一来,我们客户端通过虚拟路径去访问某一个文件,文件又被分得七零八落,HDFS内部怎么知道哪个DATANODE上面有哪些文件块呢?这就用到了NAMENODE,实际上它是一个对应关系的映射表,比如还是刚才那个虚拟路径hdfs://weekend110:9000/wordcount/input/test.txt,它对应的文件块会依次标注出来,在哪些DATANODE上面,并且大小是多少。

原文地址:https://www.cnblogs.com/DarrenChan/p/6390105.html