我们需要先了解与FSDirectory类相关的比较重要的类:INodesInPath
INodesInPath有两个重要的数据结构,分别是:INode[] inodes
byte[][] path
我们可以从FSDirectory.resolvePath(FSPermissionChecker pc, String src, boolean resolveLink)观察
INodesInPath中这两个数据结构分别代表什么。该方法最终会调用INodesInPath.resolve(rootDir, components, resolveLink)
比如我们的路径是“/A/B/C” 那么path[0]对应于"A"转成的字节,inodes[0]对应"/A"这个节点,说白了,
inodes就是给定一条路径上的所有节点
HDFS文件系统的整个命名空间是通过FSDirectory类来管理的,这里需要注意的是,FSNamesystem也提
供了管理目录树结构的方法,但FSNamesystem中的方法多是调用FSDirectory类的实现,
FSNamesystem在FSDirectory类方法的基础上添加了editlog日志记录的功能。而FSDirectory的操作则全
是在内存中进行的,并不进行editlog的日志记录