25.1.10(HDFS2)

2. 数据存储与读取流程

在 HDFS 中,数据存储和读取的过程十分有趣。当客户端向 HDFS 写入数据时,首先会将数据分成若干个固定大小的数据块(默认大小为 128MB),然后将这些数据块依次写入到不同的 DataNode 中。每个数据块会在多个 DataNode 上进行冗余存储,默认的冗余因子为 3,这意味着每个数据块会有 3 个副本,分别存储在不同的 DataNode 上,以提高数据的可靠性和容错性。

例如,假设我们要存储一个大小为 384MB 的文件,那么这个文件会被分成 3 个数据块(384MB / 128MB = 3),分别标记为 Block1、Block2 和 Block3。这 3 个数据块会被分别存储在不同的 DataNode 上,并且每个数据块都会有 2 个副本。存储过程可能如下表所示:

数据块 存储的 DataNode 副本存储的 DataNode
Block1 DataNode1 DataNode2、DataNode3
Block2 DataNode2 DataNode1、DataNode3
Block3 DataNode3 DataNode1、DataNode2

 

当客户端读取数据时,它首先会向 NameNode 查询所需数据块的位置信息,然后直接从相应的 DataNode 上读取数据。如果某个 DataNode 出现故障,客户端可以从其他存储该数据块副本的 DataNode 上获取数据,从而保证数据的可用性。

posted @   a_true  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示