当前位置: 首页 > ops >正文

HDFS 异构存储及存储策略

一、支持的存储类型

HDFS支持以下主要存储类型,按性能从高到低排列:

  1. SSD(固态存储)

    • 特点:高性能、低延迟,适合频繁访问的热数据。
    • 配置标识[SSD]
  2. DISK(机械硬盘)

    • 特点:性价比高,容量大,适合一般访问频率的数据。
    • 配置标识[DISK](默认类型)
  3. ARCHIVE(归档存储)

    • 特点:低功耗、低成本,访问延迟高,适合冷数据。
    • 配置标识[ARCHIVE]
  4. RAM_DISK(内存磁盘)

    • 特点:超高性能,数据存储在内存中,适合极热数据。
    • 配置标识[RAM_DISK]
  5. ** PROVIDED(外部存储)**

    • 特点:支持外部存储系统(如AWS S3、Azure Blob)。
    • 配置标识[PROVIDED]

二、存储策略介绍

HDFS中的HOT、WARM、COLD策略是存储策略,用于根据数据的访问频率和特性,将数据存储在不同类型的存储介质上,以优化存储成本和访问性能。具体如下:

  • HOT存储策略
    • 特点:适用于频繁访问的热数据,存储类型为DISK。该策略将数据存储在性能较高的磁盘介质上,以提供高吞吐量和低延迟的访问性能,满足对数据实时性要求较高的应用场景,如实时分析、在线事务处理等。
    • 配置方式:可通过hdfs storagepolicies -setStoragePolicy -path <路径> -policy HOT命令将指定路径下的数据设置为HOT存储策略。
  • WARM存储策略
    • 特点:用于存储访问频率适中的半冷半热数据,存储类型为DISK和ARCHIVE。此策略在存储成本和访问性能之间取得平衡,将一部分副本存储在常规磁盘(DISK)上以满足一定的访问速度要求,另一部分副本存储在归档存储(ARCHIVE)中以降低存储成本。
    • 配置方式:使用hdfs storagepolicies -setStoragePolicy -path <路径> -policy WARM命令来设置指定路径的数据采用WARM存储策略。
  • COLD存储策略
    • 特点:用于存储极少访问的冷数据,存储类型为ARCHIVE。这种策略将数据存储在成本较低、但访问延迟相对较高的归档存储介质上,适合用于存储归档数据、备份数据以及对访问实时性要求不高的历史数据等。
    • 配置方式:通过hdfs storagepolicies -setStoragePolicy -path <路径> -policy COLD命令将相应路径下的数据配置为COLD存储策略。

在使用这些存储策略时,需要先开启HDFS的存储策略功能,即设置dfs.storage.policy.enabled参数为true(默认值通常为true)。同时,更改存储策略后,目录下的文件不会自动按新策略迁移数据,需要通过hdfs mover -p <路径>命令来触发数据按新存储策略进行迁移。

三、定义异构存储策略

1. 配置DataNode存储目录

hdfs-site.xml中定义各存储类型的路径:

<property><name>dfs.datanode.data.dir</name><value>[SSD]/data/ssd,[DISK]/data/hdd1,[DISK]/data/hdd2,[ARCHIVE]/data/archive,[RAM_DISK]/data/ramdisk</value>
</property>
2. 启用存储策略功能

确保以下属性设置为true(默认已启用):

<property><name>dfs.storage.policy.enabled</name><value>true</value>
</property>
3. 使用内置存储策略

HDFS预定义了5种存储策略,通过名称引用:

策略名称描述适用场景
HOT所有副本存储在DISK(默认策略)热数据(频繁访问)
WARM至少1个副本在DISK,其他在ARCHIVE温数据(偶尔访问)
COLD所有副本存储在ARCHIVE冷数据(极少访问)
ALL_SSD所有副本存储在SSD高性能需求数据
ONE_SSD1个副本在SSD,其他在DISK部分高性能需求
LAZY_PERSIST1个副本在RAM_DISK,异步写入DISK临时高速缓存数据

四、管理存储策略

1. 查看可用策略
hdfs storagepolicies -listPolicies
2. 为目录/文件设置策略
# 设置目录为WARM策略
hdfs storagepolicies -setStoragePolicy -path /data/warm -policy WARM# 设置文件为COLD策略
hdfs storagepolicies -setStoragePolicy -path /data/archive/logs.txt -policy COLD
3. 迁移数据到新策略

更改策略后,需手动触发数据迁移:

hdfs mover -p /data/warm  # 迁移路径下的数据到新策略
4. 验证策略应用
hdfs storagepolicies -getStoragePolicy -path /data/warm

五、自定义存储策略(高级)

如需自定义策略,可通过修改hdfs-site.xml添加:

<property><name>dfs.storage.policy.table</name><value><Policy><Name>CUSTOM_HYBRID</Name><StorageTypes>SSD,DISK,ARCHIVE</StorageTypes><CreationFallbacks>SSD,DISK,ARCHIVE</CreationFallbacks><ReplicationFallbacks>DISK,ARCHIVE</ReplicationFallbacks></Policy></value>
</property>
  • StorageTypes:定义策略允许的存储类型顺序。
  • CreationFallbacks:创建文件时的降级顺序(如SSD不可用时)。
  • ReplicationFallbacks:副本恢复时的降级顺序。

六、注意事项

  1. 存储类型可用性:DataNode必须实际配置了对应存储类型的目录,策略才能生效。
  2. 性能与成本权衡
    • SSD/RAM_DISK提升性能但成本高,适合热数据。
    • ARCHIVE降低成本但访问延迟高,适合冷数据。
  3. 迁移开销:大规模数据迁移可能影响集群性能,建议在低峰期执行。

通过异构存储策略,HDFS可根据数据价值动态分配存储资源,在保证性能的同时降低总体拥有成本(TCO)。

http://www.xdnf.cn/news/13373.html

相关文章:

  • html打印合同模板
  • SAP学习笔记 - 开发31 - 前端Fiori开发 Device Adaptation(设备自适应)
  • 3 Studying《深入理解Android卷(邓凡平)》2
  • python基础面试练习题
  • Spring Boot 3 集成 MyBatis 连接 MySQL 数据库
  • TrOCR模型微调
  • 手机连接windows遇到的问题及解决方法
  • 40道Bash Shell高频题整理(附答案背诵版)
  • day 50
  • 【记录头条】头条内容合规快速自查清单
  • C++与C有什么不同
  • 【案例实战】轻创业技术手册:如何用最小MVP模型验证市场需求?低成本创业可以做什么?低成本创业项目排行榜前十名!轻资产创业项目做什么比较好?格行代理怎么样?
  • 统计学习—有监督part
  • tcp综述
  • Windows网络配置避坑指南
  • pikachu靶场通关笔记24 SQL注入07-http header注入
  • HTTP 响应状态码
  • 25/6/11 <算法笔记>RL基础算法讲解
  • Kotlin基础语法三
  • 遗传算法详解:从自然选择到代码实战
  • 【斤斤计较的小Z——KMP / hash】
  • 网传西门子12亿美元收购云原生工业软件,云化PLM系统转机在协同
  • C#高级:利用反射让字符串决定调用哪个方法
  • Leetcode20 (有效的括号)
  • Windows笔记之Win11让非焦点窗口程序也能获得流畅性能的方法
  • [论文阅读] 算法 | 布谷鸟算法在声源定位中的应用研究
  • 三星手机Galaxy S24 Ultra使用adb工具关闭和开启系统更新
  • 达梦数据库 单机部署dmhs同步复制(DM8—>DM8)
  • 基于matlab/Simulink的三相四线逆变器并联系统仿真
  • SAP学习笔记 - 开发32 - 前端Fiori开发 Content Density(内容密度)