第6节、DataNode工作机制

一、DataNode工作机制

e28cc96ae082e4532e34539c0fead92f.png

(1)一个数据块在 DataNode 上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。
(2) DataNode 启动后向 NameNode 注册,通过后,周期性(6 小时)的向 NameNode 上报所有的块信息。

DN 向 NN 汇报当前解读信息的时间间隔,默认 6 小时;
c47430023ba1af92a451886a6bf94ec7.png

DN 扫描自己节点块信息列表的时间,默认 6 小时
f459fcce32827737f051c8e36185661c.png
509d474f81ad2f5d333a15d9742ba9be.png
(3)心跳是每 3 秒一次,心跳返回结果带有 NameNode 给该 DataNode 的命令如复制块数据到另一台机器,或删除某个数据块。如果超过 10 分钟没有收到某个 DataNode 的心跳(心跳机制:向NN汇报自己还活着,正常工作), 则认为该节点不可用。
(4)集群运行中可以安全加入和退出一些机器。

二、数据完整性

以下是 DataNode 节点保证数据完整性的方法。

(1)当 DataNode 读取 Block 的时候,它会计算 CheckSum。

(2)如果计算后的 CheckSum,与 Block 创建时值不一样,说明 Block 已经损坏。

(3) Client 读取其他 DataNode 上的 Block。

(4)常见的校验算法 crc(32),md5(128),sha1(160)

(5)DataNode 在其文件创建后周期验证 CheckSum。
5296c493e3be82c7dd94a748d3b0d175.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Datanode分块机制是指在Hadoop分布式文件系统中,为了支持大文件的存储和处理,将大文件划分为多个块(Block),每个块的大小通常为64MB或128MB,并将这些块分散存储在不同的Datanode上。 具体来说,当客户端上传一个大文件时,Namenode会根据预设的块大小将文件划分为多个块,并为每个块分配一个唯一的Block ID。然后,Namenode会将每个块的Block ID和副本信息(如副本数、存储位置等)存储在元数据(Metadata)中。 接下来,客户端会通过数据流的方式将每个块上传到对应的Datanode上,并告知Datanode所上传的块的Block ID和副本信息。Datanode会确认该块是否已经存在于本地,如果不存在,则会将该块存储在本地,并根据副本数的设置将该块复制到其他的Datanode上。如果该块已经存在于本地,则Datanode会返回成功的响应。 当客户端需要读取某个块时,它会向Namenode请求该块的副本信息。Namenode会查询元数据,返回该块所有副本的位置信息。客户端会选择距离最近的Datanode读取该块,如果该Datanode发生故障,则会选择距离次近的Datanode读取该块,以此类推,直到成功读取该块为止。 总的来说,Datanode分块机制Hadoop分布式文件系统的核心机制之一,它通过将大文件划分为多个块,并将这些块分散存储在不同的Datanode上,实现了高效的数据存储和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TryBest_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值