一、介绍
我们在安装HDFS的时候,我们在hdfs-site.xml配置过DataNode的数据存储的文件目录,如下:
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop-twq/bigdata/dfs/data</value>
<description>DataNode存放数据的地方</description>
</property>
目录/home/hadoop-twq/bigdata/dfs/data就是DataNode存放数据的地方,这个目录对应的存储介质就是普通的磁盘(DISK)。除了普通磁盘,存储介质其实还有固态硬盘(SSD)等。那么,在了解HDFS存储策略之前,我们先了解下HDFS支持的存储类型
二、存储类型
HDFS支持如下4种存储类型:
DISK:表示普通磁盘(机械磁盘)
SSD:表示固态硬盘
RAM_DISK:表示内存硬盘,参考虚拟内存盘,说白了就是内存
ARCHIVE:这个并不是特指某种存储介质,而是为了满足高密度存储而定义的一种存储类型,一般对于归档的、访问不怎么频繁的数据可以以 ARCHIVE 的形式存储。
以上四种的存储类型的存取的速度大小为:RAM_DISK->SSD->DISK->ARCHIVE。存储成本由高到低
那么我们在配置DataNode的存储路径的时候,我们可以分别为上面四种存储类型配置存储位置,如下图:
<property>
<name>dfs.datanode.data.dir</name>
<value>[RAM_DISK]file:///ram_disk,[SSD]file:///ssd1/dn,[DISK]file:///disk1/dn,[ARCHIVE]file:///archive1/dn</value>
<description>DataNode存放数据的地方</description>
</property>
上面配置的DataNode的多个存储位置由逗号隔开,每一个存储位置由存储类型和存储物理路径组成。HDFS通过该配置感知底层存储的位置和类型
三、存储策略
我们先在master机器上执行如下的命令,来查看HDFS支持的存储策略:
hdfs storagepolicies -listPolicies
返回结果如下:
Block Storage Policies:
BlockStoragePolicy{
COLD:2, storageTypes=[ARCHIVE], creationFallbacks=