一、假設客戶端發送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節點