摘要:
与块相关的操作由Dataset相关的类处理,存储结构由大到小是卷(FSVolume)、目录(FSDir)和文件(Block和元数据等) block相关 block类有三个属性 private long blockId;//blockidprivate long numBytes;//block大小private long generationStamp;//block版本号 Block是对一个数据块的抽象,通过前面的讨论我们知道一个Block对应着两个文件,其中一个存数据,一个存校验信息,如下: blk_3148782637964391313 blk_314878263796439... 阅读全文
摘要:
DataNode节点中的存储路径会分别存储不同的文件数据块。HDFS对节点存储路径的实现被抽象成了一个StorageDirectory类。 StorageDirectory文件 StorageDirectory类主要包含三个属性: File root; // 节点存储目录所在本地文件系统的目录 dfs.data.dir中配置的一个本地路径FileLock lock; // 排它锁,同步控制节点对该存储目录的操作 in_use.lockStorageDirType dirType; // namenode 或者datanoderoot目录下的文件结构在上一篇中已经介绍过了.不过datanode和 阅读全文
摘要:
datanode的存储大体上可以分为两部分: 1.与Storage相关的类从宏观上刻画了每个存储目录的组织结构,管理由HDFS属性dfs.data.dir指定的目录,如current、previous、detach、tmp、storage等目录和文件,并定义了对整个存储的相关操作; 2.与Dataset相关的类描述了块文件及其元数据文件的组织方式,如current目录中的文件组织结构,以及对块文件的相关操作。 因为namenode也会用到Storage相关,而namenode并不存储块文件,因而将存储分成这两部分。 Storage类相关 先从一个datanode的配置看起,datanod... 阅读全文