首页 > 其他 > 详细

HDFS如何保证数据的完整性呢?

时间:2021-04-11 21:17:48      阅读:17      评论:0      收藏:0      [点我收藏+]

HDFS如何保证数据的完整性呢?

1、客户端向HDFS写数据的时候

技术分享图片

1、假设客户端发送2KB的数据
2、客户端会以字节的方式往datanode发送,所以客户端会计算发送的数据有多少个,而这个单位就是chunk,它一般情况是512字节,也就是说,每512字节就称为一个chunk。
3、客户端可以计算出checksum值,checksum = 2KB/512B=4
4、然后datanode接收客户端发送来的数据,每接收512B的数据,就让checksum的值+1
5、最后比较客户端和datanade的checksum值

注意:客户端读取数据也是同样的道理

2、DataNode读取block块的时候

技术分享图片

1、block创建的时候会有一个初始的checksum值
2、DataNode每隔一段时间就会计算block新的checksum值,看block块是否已经丢失
3、如果checksum和之前一样,则没丢失,和之前比出现了不一样,那就说明数据丢失(或者异常)
4、当发生异常的时候,DateNode会报告给NameNode,NameNode会发送一条命令,清除这个异常块,然后找到这个块对应的副本,将完整的副本复制给其他的DataNode节点

HDFS如何保证数据的完整性呢?

原文:https://www.cnblogs.com/huangwenchao0821/p/14645228.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!