一、概述

二、理论笔记

三、实现

3.1. 相关类

3.1.1. FsDatasetSpi

FsDatasetSpi 是 FsDatasetImpl 的根接口,定义了 Datanode 管理数据块的接口方法。

3.1.2. FsDatasetImpl

FsDatasetImpl 管理组织数据块和元数据文件

BlockPoolSlice 负责管理单个存储目录下单个块池的所有数据块,而 FsDatasetImpl 则负责管理一个完整的存储目录下所有的数据块,包括了这个存储目录下多个 BlockPoolSlice 对象的引用。
Datanode 可以定义多个存储目录,也就是定义多个 FsDatasetImpl 对象,在 HDFS 中使用 FsVolumeList 对象统一管理 Datanode 上定义的多个 FsVolumeImpl 对象。

  1. 属性