一、假设客户端发送2KB的数据 二、客户端会以字节的方式往datanode发送,因此客户端会计算发送的数据有多少个,而这个单位就是chunk,它通常状况是512字节,也就是说,每512字节就称为一个chunk。 三、客户端能够计算出checksum值,checksum = 2KB/512B=4 四、而后datanode接收客户端发送来的数据,每接收512B的数据,就让checksum的值+1 五、最后比较客户端和datanade的checksum值
注意:客户端读取数据也是一样的道理node
一、block建立的时候会有一个初始的checksum值 二、DataNode每隔一段时间就会计算block新的checksum值,看block块是否已经丢失 三、若是checksum和以前同样,则没丢失,和以前比出现了不同,那就说明数据丢失(或者异常) 四、当发生异常的时候,DateNode会报告给NameNode,NameNode会发送一条命令,清除这个异常块,而后找到这个块对应的副本,将完整的副本复制给其余的DataNode节点