针对具体存储在hdfs上的文件有个对象来模型化他那就是INodeFile这个类,因为hdfs文件系统也是树形结构的,故衍生出一些其他类来模型化这些对象,见类图描述如下
INode
/**
* We keep an in-memory representation of the file/block hierarchy.
* This is a base INode class containing common fields for file and
* directory inodes.
*/
INodeFile
hdfs中文件的描述形式,文件的静态属性描述
INodeFileUnderConstruction
hdfs中文件的动态描述形式 例如租约持有期间的更新等,例如块的恢复等。
clientName; // lease holder
primaryNodeIndex = -1; //the node working on lease recovery
DatanodeDescriptor[] targets = null; //locations for last block
long lastRecoveryTime
INodeDirectory
/**
* Directory INode class.
*/
INodeDirectoryWithQuota
/**
* Directory INode class that has a quota restriction
*/
DirCounts
/** Simple wrapper for two counters :
* nsCount (namespace consumed) and dsCount (diskspace consumed).
*/
- 大小: 63.5 KB
分享到:
相关推荐
2. **子类INodeDirectory和INodeFile**:`INodeDirectory`代表目录,有一个`children`列表,存储其下所有子节点(目录和文件)。`INodeFile`则表示文件,最重要的是`blocks`数组,存储文件所分片的Block信息。此外,...
除了继承自INode和INodeWithAdditionalFields的属性,INodeFile还包含了文件特有的属性: - **Header**:存储了文件的存储策略信息,例如数据块大小、编码类型等。 - **Blocks**:记录了文件中所有数据块的信息,...
`INode`作为一个抽象类,是目录(`INodeDirectory`)和文件(`INodeFile`)的父类。`INodeDirectoryWithQuota`则是一个特殊类型的目录,它引入了容量限制,以管理HDFS的存储资源。 `INode`类中包含了关键属性,如...
一旦所有条件满足,`finalizeINodeFileUnderConstruction`会被调用,释放租约、将`INodeFileUnderConstruction`转换为`INodeFile`、写日志并可能启动新的复制任务以确保副本数符合要求。 这些操作展示了HDFS如何...
- 这个树状结构由`INodeDirectoryWithQuota`和`INodeFile`等类构成,其中`INodeDirectoryWithQuota`继承自`INodeDirectory`,后者包含一个`List<INode>`,用于存储子节点信息。如果子节点为目录,则类型为`...
- **INodeDirectory/INodeFile**: 分别代表目录和文件的信息,包含指向具体数据块的引用。 - **BlocksMap**: 映射数据块到相应的文件节点。 #### Map-Reduce MapReduce是一种用于处理和生成大型数据集的编程模型,...
- 验证文件对应的`INodeFile`是否存在且处于构造状态。 - 如果文件处于构造状态但没有目标DataNode且没有数据块,则完成文件构建(此时会释放租约)。 - 如果文件处于构造状态且有数据块,则将最后一个未完成的数据...