一、HDFS现有的选盘策略
截止到Hadoop-3.3.1版本,目前HDFS写数据的选盘策略有两种,分别是:
RoundRobinVolumeChoosingPolicy
和AvailableSpaceVolumeChoosingPolicy
。
由配置项dfs.datanode.fsdataset.volume.choosing.policy
指定使用的选盘策略,默认是RoundRobinVolumeChoosingPolicy
策略。
RoundRobinVolumeChoosingPolicy
策略思路比较简单,就是用轮询方式依次选择每个volume。
AvailableSpaceVolumeChoosingPolicy
策略考虑了磁盘的剩余可用空间。在可选磁盘列表之中所有的磁盘剩余可用空间相差在配置的某个阈值(默认10GB)内时,说明此时各个磁盘之间数据量比较均匀,于是退化成RoundRobinVolumeChoosingPolicy
。如果相差大于配置的阈值时,则按照一定的概率(实际中一般是大于0.5,小于1)优先选择剩余可用空间大的volume。
二、基于ioutil的选盘策略
设计思路 :
我们在Ava