前言
本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系
正文
随着HDFS的不断完善,它已经从最初只支持单存储介质(磁盘)的单一文件系统逐步演化成支持异构存储介质的综合分布式文件系统,这使得它能够更好地利用新型存储介质, 比如SSD。
如图所示,HDFS支持多种常用存储类型,包括:
- ARCHIVE:高存储密度但耗电较少的存储介质,通常用来存储冷数据。
- DISK:磁盘介质,这是HDFS默认的存储介质。
- SSD:固态硬盘,是一种新型存储介质,目前被不少互联网公司使用。
- RAM_DISK:数据被写入内存中,同时会往该存储介质中再(异步)写一份。
用户可通过配置参数设置挂载的每块盘的存储类型,比如/grid/dn/disk是磁盘,/grid/dn/ssd 是固态硬盘,可以通过以下方式设置:
<property>
<name>dfs.datanode.data.dir</name>
<value>[DISK]file:///grid/dn/disk, [SSD]file:///grid/dn/ssd</value>
</property>
异构存储介质的引入,使得HDFS变成了一个提供混合存储方式的文件系统,用户可以根据数据特点,选择合适的存储介质满足你应用需求。
如下表所示,HDFS提供了多种存储策略,每种策略包含名称、策略含义、创建文件时回退策略以及数据复制时回退策略等属性,当原始放置策略对应的存储空间不够时,HDFS会尝试回退策略中的存储介质。
HDFS允许用户为每个文件单独设置存储策略。
存储策略名称 | 数据块放置策略(n副本) | 创建文件时回退策略 | 数据复制时回退策略 |
---|---|---|---|
All SSD | SSD: n | DISK | DISK |
One SSD | SSD: 1,DISK: n-1 | SSD,DISK | SSD,DISK |
Hot(default) | DISK: n | none | ARCHIVE |
Warm | DISK: 1, ARCHIVE: n-1 | ARCHIVE,DISK | ARCHIVE,DISK |
Cold | ARCHIVE: n | none | none |