[hadoop3.x]HDFS存储类型和存储策略(五)概述

简介: [hadoop3.x]HDFS存储类型和存储策略(五)概述

历史文章

[hadoop3.x系列]HDFS REST HTTP API的使用(一)WebHDFS

[hadoop3.x系列]HDFS REST HTTP API的使用(二)HttpFS

[hadoop3.x系列]Hadoop常用文件存储格式及BigData File Viewer工具的使用(三)

✨[hadoop3.x]新一代的存储格式Apache Arrow(四)

🍑 HDFS存储类型和存储策略

🐒 介绍

l Archive存储(档案存储)是一种将增长的存储容量与计算容量解耦的解决方案

l 可以将一些需要存储、但计算需求很少的数据放在低成本的存储节点中,这些节点用于集群中冷数据的存储

l 根据策略,热数据可以转移到冷节点存储。在冷区域中加入更多的节点可以使存储与集群中的计算容量无关

l 异构存储和归档存储提供的框架将HDFS体系结构概括为包括其他类型的存储介质,包括:SSD和内存。用户可以选择将数据存储在SSD或内存中以获得更好的性能。

🍑 存储类型和存储策略

🐒 多种多样的存储类型

大家考虑一个问题:我们可以将数据保存在什么样的存储类型中呢?

  1. 硬盘

SSD

SATA

  1. 内存
  2. NAS
🐒 速率对比

RAM比SSD快几个数量级。普通的磁盘大致的速度为30-150MB,比较快的SSD可以实现500MB /秒的实际写入速度。 RAM的理论上最大速度可以达到SSD实际性能的30倍。

以下是一个实际对比图:

🐒 存储类型

之前在hdfs-site.xml中配置,是将数据保存在Linux中的本地磁盘。

<property> 
<name>dfs.datanode.data.dir</name> 
<value>/export/server/hadoop-3.1.4/data/datanode</value> <description>
DataNode存储名称空间和事务日志的本地文件系统上的路径</description>
</property>

以上配置跟下面的配置是一样的:

<property> 
<name>dfs.datanode.data.dir</name> 
<value>[DISK]:/export/server/hadoop-3.1.4/data/datanode</value> <description>
DataNode存储名称空间和事务日志的本地文件系统上的路径</description></property>

在HDFS中,可以给不同的存储介质分配不同的存储类型:

l DISK:默认的存储类型,磁盘存储

l ARCHIVE:具有存储密度高(PB级),但计算能力小的特点,可用于支持档案存储。

l SSD:固态硬盘

l RAM_DISK:DataNode中的内存空间

🐒 存储策略介绍

HDFS中提供热、暖、冷、ALL_SSD、One_SSD、Lazy_Persistence等存储策略。为了根据不同的存储策略将文件存储在不同的存储类型中,引入了一种新的存储策略概念。HDFS支持以下存储策略:

热(hot)

l 用于大量存储和计算

l 当数据经常被使用,将保留在此策略中

l 当block是hot时,所有副本都存储在磁盘中。

冷(cold)

l 仅仅用于存储,只有非常有限的一部分数据用于计算

l 不再使用的数据或需要存档的数据将从热存储转移到冷存储中

l 当block是cold时,所有副本都存储在Archive中

温(warm)

l 部分热,部分冷

l 当一个块是warm时,它的一些副本存储在磁盘中,其余的副本存储在Archive中

全SSD

将所有副本存储在SSD中

单SSD

在SSD中存储一个副本,其余的副本存储在磁盘中。

懒持久

用于编写内存中只有一个副本的块。副本首先写在RAM_Disk中,然后惰性地保存在磁盘中。

🐒 HDFS中的存储策略

HDFS存储策略由以下字段组成:

策略ID(Policy ID)

策略名称(Policy Name)

块放置的存储类型列表(Block Placement)

用于创建文件的后备存储类型列表(Fallback storages for creation)

用于副本的后备存储类型列表(Fallback storages for replication)

当有足够的空间时,块副本将根据#3中指定的存储类型列表存储。当列表#3中的某些存储类型耗尽时,将分别使用#4和#5中指定的后备存储类型列表来替换空间外存储类型,以便进行文件创建和副本。

以下是一个典型的存储策略表格:

Policy ID Policy Name Block Placement (n replicas) Fallback storages for creation Fallback storages for replication
15 Lazy_Persist RAM_DISK: 1, DISK: n-1 DISK DISK
12 All_SSD SSD: n DISK DISK
10 One_SSD SSD: 1, DISK: n-1 SSD, DISK SSD, DISK
7 Hot (default) DISK: n ARCHIVE
5 Warm DISK: 1, ARCHIVE: n-1 ARCHIVE, DISK ARCHIVE, DISK
2 Cold ARCHIVE: n
1 Provided PROVIDED: 1, DISK: n-1 PROVIDED, DISK PROVIDED, DISK

注意事项:

Lazy_Persistence策略仅对单个副本块有用。对于具有多个副本的块,所有副本都将被写入磁盘,因为只将一个副本写入RAM_Disk并不能提高总体性能。

对于带条带的擦除编码文件,合适的存储策略是ALL_SSD、HOST、CORD。因此,如果用户为EC文件设置除上述之外的策略,在创建或移动块时不会遵循该策略。

🐒 存储策略方案

l 创建文件或目录时,其存储策略为未指定状态。可以使用:

storagepolicies -setStoragePolicy

命令指定

l 文件或目录的有效存储策略由以下规则解析:

如果使用存储策略指定了文件或目录,则返回该文件或目录。

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

l 可以使用storagepolicies –getStoragePolicy命令获取有效的存储策略

🐒 配置

l dfs.storage.policy.enabled

启用/禁用存储策略功能。默认值是true

l dfs.datanode.data.dir

l 在每个数据节点上,应当用逗号分隔的存储位置标记它们的存储类型。这允许存储策略根据策

略将块放置在不同的存储类型上。

磁盘上的DataNode存储位置/grid/dn/disk 0应该配置为[DISK]file:///grid/dn/disk0

SSD上的DataNode存储位置/grid/dn/ssd 0应该配置为 [SSD]file:///grid/dn/ssd0> 存档上的DataNode存储位置/grid/dn/Archive 0应该配置为 [ARCHIVE]file:///grid/dn/archive0

将RAM_磁盘上的DataNode存储位置/grid/dn/ram0配置为[RAM_DISK]file:///grid/dn/ram0

如果DataNode存储位置没有显式标记存储类型,它的默认存储类型将是磁盘。

目录
相关文章
|
存储 分布式计算 算法
Hadoop性能优化存储空间需求
【6月更文挑战第7天】
368 3
|
存储 分布式计算 Hadoop
基于Java的Hadoop文件处理系统:高效分布式数据解析与存储
本文介绍了如何借鉴Hadoop的设计思想,使用Java实现其核心功能MapReduce,解决海量数据处理问题。通过类比图书馆管理系统,详细解释了Hadoop的两大组件:HDFS(分布式文件系统)和MapReduce(分布式计算模型)。具体实现了单词统计任务,并扩展支持CSV和JSON格式的数据解析。为了提升性能,引入了Combiner减少中间数据传输,以及自定义Partitioner解决数据倾斜问题。最后总结了Hadoop在大数据处理中的重要性,鼓励Java开发者学习Hadoop以拓展技术边界。
638 7
|
存储 分布式计算 资源调度
通过日志聚合将作业日志存储在HDFS中
如何通过配置Hadoop的日志聚合功能,将作业日志存储在HDFS中以实现长期保留,并详细说明了相关配置参数和访问日志的方法。
572 1
通过日志聚合将作业日志存储在HDFS中
|
SQL 存储 数据管理
Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测
Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测
367 2
|
存储 SQL 分布式计算
Hadoop生态系统概述:构建大数据处理与分析的基石
【8月更文挑战第25天】Hadoop生态系统为大数据处理和分析提供了强大的基础设施和工具集。通过不断扩展和优化其组件和功能,Hadoop将继续在大数据时代发挥重要作用。
1101 3
|
存储 机器学习/深度学习 分布式计算
HDFS与网络附加存储(NAS)的比较
【8月更文挑战第31天】
892 1
|
存储 分布式计算 Hadoop
Hadoop性能优化存储效率
【6月更文挑战第5天】
349 7
|
存储 分布式计算 NoSQL
Hadoop性能优化HDFS不适合存储小文件
【6月更文挑战第4天】
1002 4
|
XML 存储 分布式计算
【赵渝强老师】史上最详细:Hadoop HDFS的体系架构
HDFS(Hadoop分布式文件系统)由三个核心组件构成:NameNode、DataNode和SecondaryNameNode。NameNode负责管理文件系统的命名空间和客户端请求,维护元数据文件fsimage和edits;DataNode存储实际的数据块,默认大小为128MB;SecondaryNameNode定期合并edits日志到fsimage中,但不作为NameNode的热备份。通过这些组件的协同工作,HDFS实现了高效、可靠的大规模数据存储与管理。
1848 70
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
1242 6

相关实验场景

更多