HDFS 2.X源码剖析(一)
一.HDFS概述
HDFS是一个主/从(Mater/Slave)体系结构,从最终用户的角度来看,它就像传统的文件系统一样,可以通过目录路径对文件执行CRUD(Create、Read、Update和Delete)操作。但由于分布式存储的性质,HDFS集群拥有一个NameNode和一些DataNode。NameNode管理文件系统的元数据,DataNode存储实际的数据。客户端通过同NameNode和DataNodes的交互访问文件系统。客户端联系NameNode以获取文件的元数据,而真正的文件I/O操作是直接和DataNode进行交互的。
1.HDFS体系结构
NN管理了HDFS两个最重要的关系:
目录文件树结构和文件与数据块的对应关系:会持久化到物理存储中,文件名叫做fsimage。
DN与数据块的对应关系,即数据块存储在哪些DN中:在DN启动时会上报到NN它所维护的数据块。这个是动态建立的,不会持久化。因此,集群的启动可能需要比较长的时间。
而DN则保存了数据块。并且执行NN的命令,比如复制,拷贝,删除等操作。
Client则是使用HDFS的主题,包括写文件,读文件等常见操作。
HDFS基本概念
数据块
上文多次提到数据块,那么什么