前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HDFS DN工作机制

HDFS DN工作机制

原创
作者头像
堕落飞鸟
发布2023-05-12 10:31:43
2950
发布2023-05-12 10:31:43
举报
文章被收录于专栏:飞鸟的专栏

HDFS(Hadoop Distributed File System)是一种分布式文件系统,可以存储和处理大规模数据集。在HDFS中,DN(DataNode)是一个工作节点,负责存储和管理数据块。

数据块的管理

在HDFS中,文件会被分成若干个数据块(默认大小为128MB),并存储在不同的DN上。DN会将数据块写入本地磁盘,并对数据块进行管理,包括复制、删除等操作。DN还会周期性地向NN发送心跳信号,汇报本地数据块的状态和可用性。

说明: 假设一个文件被分成三个数据块,分别存储在DN1、DN2、DN3上。当DN1发生故障时,NN会收到DN1的心跳信号,并发现其中一个数据块不可用。此时,NN会将该数据块的副本从DN1上删除,并从DN2或DN3中选择一个副本进行恢复。

数据块的复制

为了保证数据的可靠性和容错性,HDFS会将每个数据块存储多个副本(默认为3个),并将副本分布在不同的DN上。当有新的数据块写入时,DN会向NN请求一个可用的DN列表,并将数据块的副本写入这些DN上。每个DN都会周期性地向其他DN请求数据块的副本,以保证自己拥有足够的副本。

说明: 假设一个数据块需要存储三个副本,分别存储在DN1、DN2、DN3上。当有新的数据块写入时,DN1会向NN请求一个可用的DN列表,NN会返回DN2和DN3。此时,DN1会将数据块的副本写入DN2和DN3上,并周期性地向它们请求数据块的副本。

数据块的删除

当一个文件或者数据块不再需要时,HDFS会将它们从系统中删除。在删除数据块时,HDFS会考虑该数据块的副本情况,并保证至少有一个副本存活。

说明: 假设一个数据块需要存储三个副本,分别存储在DN1、DN2、DN3上。当需要删除该数据块时,HDFS会首先从NN中删除数据块的元数据信息。然后,HDFS会向DN1、DN2和DN3发送删除命令。当其中一个DN收到删除命令后,它会将本地副本删除,并向其他DN请求数据块的副本,以保证至少有一个副本存活。

数据块的读取

当需要读取一个文件或者数据块时,客户端会向NN发送读取请求,NN会返回该数据块的副本列表。然后,客户端会从副本列表中选择一个DN进行读取,并向该DN发送读取请求。如果所选DN不可用,则客户端会从副本列表中选择另一个DN进行读取。

说明: 假设一个数据块需要存储三个副本,分别存储在DN1、DN2、DN3上。当需要读取该数据块时,客户端会向NN发送读取请求,NN会返回副本列表[D1, D2, D3]。客户端会选择一个DN进行读取,比如选择DN1。如果DN1不可用,则客户端会选择另一个DN进行读取。

数据块的校验和

为了保证数据块的完整性和可靠性,HDFS会为每个数据块生成一个校验和,并将其存储在NN中。在读取数据块时,客户端会对读取的数据块进行校验和计算,并将计算结果与存储在NN中的校验和进行比较,以确保数据块的完整性。

说明: 假设一个数据块的校验和为C,存储在NN中。当需要读取该数据块时,客户端会选择一个DN进行读取,并从DN上读取数据块B。然后,客户端会对B进行校验和计算,得到C'。最后,客户端将C'与存储在NN中的校验和C进行比较,以确定数据块的完整性。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据块的管理
  • 数据块的复制
  • 数据块的删除
  • 数据块的读取
  • 数据块的校验和
相关产品与服务
云硬盘
云硬盘(Cloud Block Storage,CBS)为您提供用于 CVM 的持久性数据块级存储服务。云硬盘中的数据自动地在可用区内以多副本冗余方式存储,避免数据的单点故障风险,提供高达99.9999999%的数据可靠性。同时提供多种类型及规格,满足稳定低延迟的存储性能要求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档