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

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)。

相关文章:

  • 《Linux C编程实战》笔记番外:如何避免子进程成为僵尸进程
  • 每日Prompt:人像写真
  • uni-app bitmap.load() 返回 code=-100
  • xilinx的gt的ALIGN_COMMA_WORD设置的作用
  • 鸿蒙新闻应用全链路优化实践:从内核重构到体验革新
  • 实时获取印度国家股票数据 API 实操
  • Explore Image Deblurring via Encoded Blur Kernel Space论文阅读
  • AIStor 的模型上下文协议 (MCP) 服务器: 工作原理
  • [Git] 配置 Git
  • 3D IC(立体集成电路)的生态机会
  • 多项目资源如何高效配置与再分配?
  • 【JavaAPI搜索引擎】项目测试报告
  • JSON 是什么?核心概念与语法解析
  • 神经网络:深度剖析过拟合、欠拟合及其泛化能力提升策略
  • 计算机视觉与深度学习 | 基于Matlab的低照度图像增强算法:全面总结与实现
  • K8S多维度问题排查
  • 安卓中草药宝典 V2.6上千种中草药知识学习
  • K8S项目需求分析
  • Android11 Launcher3实现去掉抽屉改为单层
  • GO 入门小项目-博客-结合Gin Gorm
  • 网站建设 济南/网站权重怎么看
  • 学习制作网页的网站/网站权重排名
  • 付费网站 源码 下载链接/制作网站需要什么软件
  • 手机wap网站怎样从微信公众号打开/无锡seo优化
  • 专业的推广公司/优化设计三年级下册数学答案
  • 网站注册地/上海网络推广排名公司