我無法理解HDFS中的校驗和如何在文件寫入讀取時識別損壞的塊。有人能詳細解釋我嗎?HDFS/Hadoop中的校驗和過程
回答
看看Apache documentation關於HDFS架構。
數據完整性
可能的是,從數據管理部獲取的數據的一個塊到達損壞。由於存儲設備故障,網絡故障或有問題的軟件,可能會發生此損壞。
它以下面的方式工作。
HDFS客戶端軟件實現校驗和檢查器。當客戶端創建HDFS文件時,它會計算文件每個塊的校驗和,並將這些校驗和存儲在同一個HDFS名稱空間中的單獨隱藏文件中。
當客戶端檢索文件內容時,它會驗證從每個DataNode收到的數據是否與存儲在相關校驗和文件中的校驗和相匹配。
如果不是,則客戶端可以選擇從另一個具有該塊副本的DataNode中檢索該塊。
如果另一個數據節點塊的校驗和與隱藏文件的校驗和匹配,系統將爲這些數據塊提供服務。
看一看健壯性節了。如果沒有查看數據複製機制,解決方案將不完整。
每個DataNode定期向NameNode發送一個Heartbeat消息。
網絡分區可能導致DataNode的一個子集失去與NameNode的連接。 NameNode通過缺少Heartbeat消息來檢測這種情況。
NameNode標記沒有最近Heartbeats的DataNode爲死,並且不會向它們轉發任何新的IO請求。任何註冊到死亡DataNode的數據不再可用於HDFS。
DataNode死亡可能導致某些塊的複製因子降到其指定值以下。 NameNode會不斷跟蹤哪些塊需要複製,並在需要時啓動複製。
重新複製的必要性可能由於多種原因而出現:DataNode可能變得不可用,副本可能會損壞,DataNode上的硬盤可能會失敗,或者文件的複製因子可能會增加。複製方案的
實施例:
這取決於的cluster
dfs.replication
(Assume that it is 3)
dfs.namenode.replication.min
配置(假設它是1)
在一個數據節點的情況下丟失,名稱節點將識別出塊被低複製。然後名稱節點將複製數據塊直到滿足dfs.replicaiton
。
- 1. 校驗和VBScript中
- 2. C編程TCP校驗和
- 3. maven:「校驗和校驗失敗,沒有可用的校驗和」,爲什麼?
- 4. Jquery校驗和
- 5. 什麼校驗和技術會讓我從它的部件的校驗和中計算整個校驗和?
- 6. Adler32和MD4的校驗和
- 7. 校驗和功能的逆向工程
- 8. 全面的MD5校驗和教程
- 9. 過濾器和校驗添加兩次
- 10. IPV4頭校驗和驗證
- 11. Intranet與Internet應用程序中的校驗和驗證
- 12. MD5/SHA1校驗和
- 13. 校驗和計算
- 14. 增量校驗和
- 15. OpenSSL SHA1校驗和
- 16. 校驗和解釋?
- 17. 快遞-校驗中斷校驗器鏈
- 18. 校驗和()的碰撞2005
- 19. exFAT校驗和的計算
- 20. TCP上的校驗和
- 21. 7zip文件的校驗和
- 22. 校驗和的選擇
- 23. 消息上的校驗和
- 24. ReactJS無效的校驗和
- 25. zip文件的校驗和
- 26. Github Repository的校驗和
- 27. CRC校驗和的分佈
- 28. 帶鹽的MD5校驗和
- 29. 校驗和Office 365的PROPLUS
- 30. 協議校驗和逆向工程