CGFT大數據中,數據錯誤與恢復是需要重點掌握的。具體有什么內容,下文作詳細介紹!

HDFS具有較高的容錯性,可以兼容廉價的硬件,它把硬件出錯看成一種常態,而不是異常,并設計了相應的機制檢測數據錯誤和進行自行恢復,主要包括以下幾種情形。

1、名稱節點出錯

名稱節點保存了所有的元數據信息,其中,核心的兩大數據結構是fslmage和editlog。如果這兩個文件發生損壞,那么整個HDFS實例將失效。因此,HDFS設置了備份機制,把這些核心文件同步復制到備份服務器secondarynamenode上,備份服務器本身不會處理任何請求,只扮演備份機的角色,雖然這樣會增加名稱節點服務器的負擔,但是,可以有效保 證數據的可靠新和系統可用性。

2、數據節點出錯

每個數據節點會定期向名稱節點發送“心跳”信息,向名稱節點報告自己的狀態。當數據節點發生故障,或者網絡發生斷網時,名稱節點就無法收到來自一些數據節點的心跳信息,這時,這些數據節點就會被標記為“宕機”,節點上面的所有數據就會被標記為“不可讀”,名稱節點不會再給它們發送任何I/O請求。

特許全球金融科技師CGFT一級

3、數據出錯

網絡傳輸和磁盤錯誤等因素,都會造成數據錯誤。客戶端在讀取到數據后,會采用md5和shal對數據塊進行校驗,以確定讀取到正確的數據。

在文件被創建時,客戶端就會對每一個文件塊進行信息摘錄,并把這些信息寫入同一個路徑的隱藏文件里面。

當客戶端讀取文件的時候,會先讀取該信息文件,然后,利用該信息文件對每個讀取的數據塊進行校驗,如果校驗出錯,客戶端就會請求到另外一個數據節點讀取該文件塊,并且向名稱節點報告這個文件塊有錯誤,名稱節點會定期檢查并且重新復制這個塊。