3. 文件系统数据集

BlockPoolSlice #

FsVolumelmpl 实现 #

Datanode可以配置多个存储目录存储数据块文件。每一个存储目录下的数据块管理功能 都由一个单独的FsVolumeImpl对象负责。而每一个存储目录又可以保存多个块池的数据块, 其中每一个块池数据块的管理都由一个BlockPoolSlice对象负责,因此FsVolumeImpl对象会 持有多个BlockPoolSlice对象的引用。

FsVolumeList #

我们知道Datanode可以设置多个存储目录,每一个存储目录的数据块都是由一个 FsVolumelmpl对象负责管理的。对于Datanode定义的多个存储目录,HDFS提供了接口类—— FsVolumeList进行统一管理,FsVolumeList使用一个线性表保存所有的FsVolumeImpl对象, 并提供统一的接口在所有的FsVolumeImpl对象上执行操作。