hdfs的异构存储
创始人
2025-05-31 19:39:49
0

文章目录

  • 1 背景
  • 2 hdfs异构存储类型和存储策略
    • 2.1 hdfs支持的存储类型
    • 2.2 hdfs如何知道数据存储目录是那种存储类型
    • 2.3 存储策略
      • 2.3.1 在hdfs中支持如下存储策略
      • 2.3.2 存储策略表
      • 2.3.4 Storage Policy Resolution
      • 2.3.5 配置存储策略
      • 2.3.6 基于存储策略的数据移动
      • 2.3.7 存储策略命令
        • 2.3.7.1 列出所有存储策略
        • 2.3.7.2 为文件或目录设置存储策略
        • 2.3.7.3 取消存储策略
        • 2.3.7.4 获取文件或目录的存储策略。
        • 2.3.7.5 查看文件块分布
  • 3 hdfs异构存储案例
    • 3.1 环境准备
    • 3.2 节点 hdfs-site.xml配置文件
      • 3.2.1 hadoop01
      • 3.2.2 hadoop02
      • 3.2.3 hadoop03
    • 3.3 重启hdfs集群,并看数据目录存储类型是否正确
    • 3.4 案例演示
  • 4 参考文档

1 背景

在我们实际的开发过程中,我们的某些数据可能经常使用,但是过了一段时间,这个数据就不怎么使用了,即我们的数据存在一个等这些特性。那么针对数据的热度,我们可以采用不同的策略,存储到不同的存储介质上。
比如:

  1. 针对经常访问的数据,我们可以存储在SSD上。
  2. 针对访问频率不高的,我们可以存储在DISK,即普通的硬盘上。
  3. 针对几乎不会访问的数据,保存在归档介质上。

注意:那么hdfs自己知道哪些数据是热数据,哪些数据是冷数据吗,貌似是不知道的,需要我们自己去判断

2 hdfs异构存储类型和存储策略

2.1 hdfs支持的存储类型

hdfs支持如下4中存储类型

  • ARCHIVE: 它具有高存储密度(PB级存储)但计算能力弱,一般用于归档文件的存储。
  • DISK : 普通磁盘,默认的存储类型
  • SSD : SSD固态硬盘
  • RAM_DISK: 支持在内存中写入单个副本文件

hdfs支持的存储类型

2.2 hdfs如何知道数据存储目录是那种存储类型

hdfs是不会自动检测我们指定的数据存储目录是何种存储类型的,需要我们在配置的时候告诉hdfs

指定目录的存储类型

vim hdfs-site.xml

dfs.datanode.data.dir[SSD]file:///var/hadoop/dfs/data1,[DISK]file:///var/hadoop/dfs/data2

从上面的配置中可以 /var/hadoop/dfs/data1前面指定了[SSD],则说明data1 这个目录是一个 SSD的存储介质,但是具体是不是真的SSD类型,这个是不会去校验的。

hdfs如何知道数据存储目录是那种存储类型

2.3 存储策略

2.3.1 在hdfs中支持如下存储策略

  • Hot: 用于存储和计算。当我们的数据是数据时,可以使用这种存储策略,所有的副本都在DISK中。
  • Warm: 仅适用于计算有限的存储。不再使用的数据或需要归档的数据从热存储移动到冷存储。当一个块时,所有副本都存储在ARCHIVE中。
  • Cold:部分热和部分冷。当一个块是热的时,它的一些副本存储在DISK中,其余的副本存储在ARCHIVE中。
  • All_SSD:用于将所有副本存储在SSD中。
  • One_SSD:用于将其中一个副本存储在SSD中。其余副本存储在DISK中。
  • Lazy_Persist:用于在内存中写入具有单个副本的块。副本首先用RAM_DISK写入,然后懒惰地保存在DISK中。
  • Provided:用于在HDFS之外存储数据
    hdfs支持的存储策略

2.3.2 存储策略表

存储策略表

2.3.4 Storage Policy Resolution

创建文件或目录时,未指定其存储策略。可以使用storagePolicy -setStoragePolicy命令指定存储策略。文件或目录的有效存储策略由以下规则解析。

  1. 如果文件或目录指定了存储策略,则返回它。
  2. 对于未指定的文件或目录,如果是根目录,则返回默认存储策略。否则,返回其父级的有效存储策略。

有效的存储策略可以通过storagePolicy -getStoragePolicy命令检索。

2.3.5 配置存储策略

  • dfs.storage.policy.enabled 用于启用或禁止存储策略特性,默认值是true
  • dfs.datanode.data.dir 在每个数据节点上,逗号分隔的存储位置应标记其存储类型。这允许存储策略根据策略将块放置在不同的存储类型上。

举例说明

  1. 如果一个datanode 上的存储位置 /grid/dn/disk0DISK类型,应该配置为[DISK]file:///grid/dn/disk0
  2. 如果一个datanode 上的存储位置 /grid/dn/disk0SSD类型,应该配置为[SSD]file:///grid/dn/disk0
  3. 如果一个datanode 上的存储位置 /grid/dn/disk0ARCHIVE类型,应该配置为[ARCHIVE]file:///grid/dn/disk0

如果没有显式标记的存储类型,则datanode存储位置的默认存储类型将是DISK

2.3.6 基于存储策略的数据移动

已经存在文件/目录设置新的存储策略将改变命名空间中的策略,但它不会在存储介质之间物理移动块。
此处介绍基于Mover来解决这个问题,具体的细节需要看官方文档。

mover工具的使用

2.3.7 存储策略命令

2.3.7.1 列出所有存储策略

hdfs storagepolicies -listPolicies

2.3.7.2 为文件或目录设置存储策略

hdfs storagepolicies -setStoragePolicy -path  -policy 

:需要设置存储策略的文件或目录
:存储策略的名字

2.3.7.3 取消存储策略

hdfs storagepolicies -unsetStoragePolicy -path 

取消对文件或目录的存储策略设置。在unset命令之后,将应用最近祖先的存储策略,如果没有任何祖先的策略,则将应用默认存储策略。

2.3.7.4 获取文件或目录的存储策略。

hdfs storagepolicies -getStoragePolicy -path 

2.3.7.5 查看文件块分布

hdfs fsck xxx -files -blocks -locations

3 hdfs异构存储案例

3.1 环境准备

ip地址节点名存储类型
192.168.121.140hadoop01DISK,ARCHIVE
192.168.121.141hadoop02DISK,SSD
192.168.121.142hadoop03SSD,ARCHIVE

3.2 节点 hdfs-site.xml配置文件

3.2.1 hadoop01

dfs.replication2


dfs.storage.policy.enabledtrue


dfs.datanode.data.dir [DISK]file:///opt/bigdata/hadoop-3.3.4/data/disk,[ARCHIVE]file:///opt/bigdata/hadoop-3.3.4/data/archive

3.2.2 hadoop02

dfs.replication2


dfs.storage.policy.enabledtrue


dfs.datanode.data.dir [DISK]file:///opt/bigdata/hadoop-3.3.4/data/disk,[SSD]file:///opt/bigdata/hadoop-3.3.4/data/ssd

3.2.3 hadoop03

dfs.replication2


dfs.storage.policy.enabledtrue


dfs.datanode.data.dir [SSD]file:///opt/bigdata/hadoop-3.3.4/data/ssd,[ARCHIVE]file:///opt/bigdata/hadoop-3.3.4/data/archive

3.3 重启hdfs集群,并看数据目录存储类型是否正确

查看数据目录的存储类型

3.4 案例演示

此处仅仅只是演示 Warm类型。

由之前的存储策略表(2.3.2)可知,Warm类型的策略,只有一个块存储在DISK存储上,其余的全部存储在ARCHIVE存储上。

# hdfs 上创建目录
[hadoopdeploy@hadoop01 hadoop]$ hadoop fs -mkdir -p /var/data/storage
# 上传文件到 hdfs 目录中
[hadoopdeploy@hadoop01 hadoop]$ hadoop fs -put /etc/profile /var/data/storage/profile
# 设置 /var/data/storage 目录的存储策略为 warm
[hadoopdeploy@hadoop01 hadoop]$ hdfs storagepolicies -setStoragePolicy -path /var/data/storage -policy WARM
Set storage policy WARM on /var/data/storage
# 查看 /var/data/storage 目录的文件块分布,发现还是 2个 DISK,说明历史数据需要迁移,使用 mover 命令
[hadoopdeploy@hadoop01 hadoop]$ hdfs fsck /var/data/storage -files -blocks -locations
Connecting to namenode via http://hadoop01:9870/fsck?ugi=hadoopdeploy&files=1&blocks=1&locations=1&path=%2Fvar%2Fdata%2Fstorage
FSCK started by hadoopdeploy (auth:SIMPLE) from /192.168.121.140 for path /var/data/storage at Sat Mar 18 17:49:48 CST 2023/var/data/storage 
/var/data/storage/profile 2098 bytes, replicated: replication=2, 1 block(s):  OK
0. BP-1760725553-192.168.121.140-1676791226380:blk_1073741858_1036 len=2098 Live_repl=2  [DatanodeInfoWithStorage[192.168.121.141:9866,DS-e86f80ba-6f04-4074-ab96-f58212c3c0e2,DISK], DatanodeInfoWithStorage[192.168.121.140:9866,DS-ca40e8cf-4d38-4a42-bfcb-e636087e9025,DISK]]
......# 将 /var/data/storage 按照存储策略移动数据块
[hadoopdeploy@hadoop01 hadoop]$ hdfs mover /var/data/storage
2023-03-18 17:52:04,620 INFO mover.Mover: namenodes = {hdfs://hadoop01:8020=null}
2023-03-18 17:52:04,630 INFO balancer.NameNodeConnector: getBlocks calls for hdfs://hadoop01:8020 will be rate-limited to 20 per second
2023-03-18 17:52:05,368 INFO net.NetworkTopology: Adding a new node: /default-rack/192.168.121.142:9866
2023-03-18 17:52:05,368 INFO net.NetworkTopology: Adding a new node: /default-rack/192.168.121.140:9866
2023-03-18 17:52:05,368 INFO net.NetworkTopology: Adding a new node: /default-rack/192.168.121.141:9866
2023-03-18 17:52:05,402 INFO balancer.Dispatcher: Start moving blk_1073741858_1036 with size=2098 from 192.168.121.140:9866:DISK to 192.168.121.140:9866:ARCHIVE through 192.168.121.140:9866
2023-03-18 17:52:05,412 INFO balancer.Dispatcher: Successfully moved blk_1073741858_1036 with size=2098 from 192.168.121.140:9866:DISK to 192.168.121.140:9866:ARCHIVE through 192.168.121.140:9866
Mover Successful: all blocks satisfy the specified storage policy. Exiting...
2023-3-18 17:52:15       Mover took 10sec
# 重新查看 /var/data/storage 目录的文件块分布,发现还是 一个是 DISK 另外一个 ARCHIVE,说明存储策略生效了
pdeploy@hadoop01 hadoop]$ hdfs fsck /var/data/storage -files -blocks -locations
Connecting to namenode via http://hadoop01:9870/fsck?ugi=hadoopdeploy&files=1&blocks=1&locations=1&path=%2Fvar%2Fdata%2Fstorage
FSCK started by hadoopdeploy (auth:SIMPLE) from /192.168.121.140 for path /var/data/storage at Sat Mar 18 17:53:23 CST 2023/var/data/storage 
/var/data/storage/profile 2098 bytes, replicated: replication=2, 1 block(s):  OK
0. BP-1760725553-192.168.121.140-1676791226380:blk_1073741858_1036 len=2098 Live_repl=2  [DatanodeInfoWithStorage[192.168.121.141:9866,DS-e86f80ba-6f04-4074-ab96-f58212c3c0e2,DISK], DatanodeInfoWithStorage[192.168.121.140:9866,DS-cf50253c-ea3f-46f6-bdd9-4ac1ad3907d2,ARCHIVE]]

查看文件块分布

4 参考文档

1、https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/ArchivalStorage.html
2、https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

相关内容

热门资讯

儒商是中国梦的推动者读后感 儒... 儒商是中国梦的推动者读后感一:  5月9日在学习了《儒商是中国梦的推动者》一文之后,感慨颇多:  所...
反腐小说《人民的名义》读后感 ... 反腐小说《人民的名义》读后感【篇一】  在官场文学的作品里,论文学性,周梅森的作品不如阎真的《沧浪之...
关于《美丽广州我的中国梦》读后... 《美丽广州我的中国梦》读后感【篇一】  广州市爱国主义教育基地层次多样、内容丰富、分布广泛、影响力强...
最新或2023(历届)《狼王梦... 最新或2023(历届)狼王梦读后感600字【篇一】  《狼王梦》是“动物小说大王”沈石溪写的一部关于...
老舍写的母鸡读后感精选 老舍的... 老舍写的母鸡读后感【篇一】  今天我们学习了《母鸡》这篇课文,母鸡对她的小雏鸡关心,呵护让我很感动。...
读《米开朗琪罗传》有感 3篇 ... 读米开朗琪罗传有感【篇一】  名人传中,介绍了三位伟人,分别是贝多芬、米开朗琪罗和托尔斯泰,米开朗琪...
关于革命先烈的英雄事迹读后感 ... 关于革命先烈的英雄事迹读后感【篇一】  如果问是谁开创了中国历史的先河,我会回答:革命先烈们。他们用...
《普法教育读本》读后感精选 普... 《普法教育读本》读后感【篇一】  我们从小就接受法制教育, 享受法律给予的权利.但是在事实上到底有多...
最新《青少年普法教育读本》读后... 《青少年普法教育读本》读后感【篇一】  《全国青少年普法教育读本》,这本书,始终让我记忆犹新。因为,...
读《百年追梦全面小康》有感 读... 读《百年追梦全面小康》有感一:  根据我国经济社会发展实际,党的十六大、十七大都确立了全面建设小康社...
《莫莉的假期》读后感1000字... 书是知识的海洋,书是进步的阶梯。在茫茫书海中,《莫莉的假期》这本书深深地吸引我。因为这是以“少女成长...
最新或2023(历届)《笑猫日...  第一篇:《笑猫日记——幸福的鸭子》读后感  幸福感来自于给予他人和感悟人生。在给予和感悟的同时,自...
《装在套子里的人》读后感800... 示例范文一:  生活中,有太多的人把自己装在“自制”的套子里,远离流言,远离浊世,避开一切对自己不利...
《巧克力味的暑假》读后感 巧克...  前一段时间,心情不太好,压力很大,老师就推荐我看一本书,说这本书很值得一看。我怀着既好奇又试着看的...
世界环境日活动方案,世界环境日... 一、活动前准备工作:  植树节,1979年2月,中国五届人大常委会第六次会议决定,将每年的3月12 ...
应用化学专业优秀的职业生涯规划...  一. 前言  社会的发展日异月新,社会的竞争越来越大,大学生越来越多,因此,大学生也就变得越来越不...
机电专业大学生职业生涯规划书范...   《礼记o中庸》中有云:"凡事预则立,不预则废。"职业生涯规划,并非幻想,并非冲动,是憧憬,是期望...
现代大学生个人职业生涯规划范文...  现代大学生是祖国的接班人,因此当代大学生在以后的发展比较重要,下面为大家提供当代大学生职业生涯规划...
优秀人民调解委员会事迹材料 全... 水厂路社区地处咸阳市中心地段,东起西兰路、西至思源北路、北依人民西路、南临渭阳西路,占地0.9平方公...
外语专业大学生职业生涯规划范文...  在已经步入二十一世纪的今天,大学生已经与时代接轨赋予了全新的含义,背负着更多的责任,而职业生涯规划...