MapReduce基础:HDFS的数据完整性

本文介绍了HDFS中如何处理损坏的数据块(Block)。当客户端读取数据时发现错误,会向NameNode报告损坏的Block并抛出ChecksumException。NameNode随后会标记此Block为损坏,并停止使用它。为了恢复数据,NameNode会从其他节点复制健康的Block副本,并最终删除损坏的Block。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HDFS会对写入的所有数据计算校验和,并在读取数据时验证校验和。

DataNode负责在接收到数据后存储该数据及验证校验和

 

恢复损坏的Block, 主要有以下几步:

1)客户端在读取Block时,如果检测到错误,首先向NameNode报告已损坏的Block及其正在尝试读操作的这个DataNode, 再抛出ChecksumException

2)NameNode将这个Block副本标记为已损坏,这样NameNode就不会把客户端指向这个Block,也不会复制这个Block到其他的DataNode

3)NameNode会把一个好的Block复制到另一个DataNode上, 如此一来,Block的副本因子又回到期望水平。

4)最后,NameNode把已损坏的Block副本删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值