尚硅谷大數據技術之Hadoop(HDFS)第6章 DataNode(面試開發重點)
6.1 DataNode工作機制
DataNode工作機制,如圖3-15所示。
圖3-15??DataNode工作機制
1)一個數據塊在DataNode上以文件形式存儲在磁盤上,包括兩個文件,一個是數據本身,一個是元數據包括數據塊的長度,塊數據的校驗和,以及時間戳。
2)DataNode啟動后向NameNode注冊,通過后,周期性(1小時)的向NameNode上報所有的塊信息。
3)心跳是每3秒一次,心跳返回結果帶有NameNode給該DataNode的命令如復制塊數據到另一臺機器,或刪除某個數據塊。如果超過10分鐘沒有收到某個DataNode的心跳,則認為該節點不可用。
4)集群運行中可以安全加入和退出一些機器。
6.2 數據完整性
思考:如果電腦磁盤里面存儲的數據是控制高鐵信號燈的紅燈信號(1)和綠燈信號(0),但是存儲該數據的磁盤壞了,一直顯示是綠燈,是否很危險?同理DataNode節點上的數據損壞了,卻沒有發現,是否也很危險,那么如何解決呢?
如下是DataNode節點保證數據完整性的方法。
1)當DataNode讀取Block的時候,它會計算CheckSum。
2)如果計算后的CheckSum,與Block創建時值不一樣,說明Block已經損壞。
3)Client讀取其他DataNode上的Block。
4)DataNode在其文件創建后周期驗證CheckSum,如圖3-16所示。