且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

【总结】HDFS源码之INode相关类

更新时间:2022-09-20 20:24:42

【总结】HDFS源码之INode相关类【总结】HDFS源码之INode相关类

快照:http://f.dataguru.cn/thread-574962-1-1.html



第一部分主要有五个类INode,INodeAttributes,INodeFile,INodeDirectory,INodeReference,INodeSymlink

(符号链接,可以将分布式缓存DistributedCache的文件连接到当前工作路径)


1、INode实现类类图

INodeFile继承INodeWithAdditionalFileds类, INodeDirectory继承INodeWithAdditionalFileds实现INode类

(1).INode类方法

    实现INodeAttributes

【总结】HDFS源码之INode相关类【总结】HDFS源码之INode相关类

    INode元信息get set,其他基本的判断方法

【总结】HDFS源码之INode相关类【总结】HDFS源码之INode相关类


INode类采用设计模式中的模板模式,模板方法是final类型,不可以继承,供接口调用

【总结】HDFS源码之INode相关类

【总结】HDFS源码之INode相关类


(2).INode类字段

    只有一个字段parent,表示当前INode的父目录,父目录只能是INodeDirectory或INodeReference

【总结】HDFS源码之INode相关类


2、INodeWithAdditionalFields类

(1).INodeWithAdditionalFields继承INode抽象类,重写INode的抽象方法,例如getId(), getUserName()等

特殊字段permission features



3、INodeDirectory类


属性:

    children: List<Node> 把保存一组文件和其他目录


方法:

    子目录相关方法  children字段的CRUD方法

    特性feature相关方法

    快照 SnapShot相关方法


【总结】HDFS源码之INode相关类


4、INodeFile类


属性:

   long  header 文件头信息,保存当前文件有多少副本,文件数据块大小(内部类HeaderFormat类处理,类似INodeWithAdditionalFields的permissions处理方法)

   BlockInfo []  blocks 数据块信息,保存数据块与文件,数据块与数据节点的对应关系

【总结】HDFS源码之INode相关类


【总结】HDFS源码之INode相关类



方法:(类图查看)

    UnderConstruction特性相关方法

    SnapShot相关方法

    其他:header修改,获取方法;blocks数组字段的操作



5、INodeReference类

INode引用类,文件/目录被重命名或者移动其他目录的时候,会存在多条访问路径,INodeReference处理这个问题

属性:

    



     本文转自巧克力黒 51CTO博客,原文链接:http://blog.51cto.com/10120275/1792600,如需转载请自行联系原作者