使用者希望儲存和處理資料的時候,不會有任何損失或者損壞。
hadoop提供兩種校驗
1校驗和(常用迴圈冗餘校驗crc-32)
2執行後台程序來檢測資料塊
校驗和
1、寫入資料節點驗證
2、讀取資料節點驗證
3、恢復資料
4、localfilesystem類
5、checksumfilesystem類
6、datablockscanner
1、寫入資料節點驗證
hdfs會對寫入的所有資料計算校驗和,並在讀取資料時驗證校驗和。
元資料節點負責在驗證收到的資料後,儲存資料及其校驗和。
在收到客戶端資料或複製其他datanode的資料時執行。
正在寫資料的客戶端將資料及其校驗和傳送到一系列資料節點組成的管線,管線的最後乙個資料節點負責驗證校驗和
2、讀取資料節點驗證
客戶端讀取資料節點資料也會驗證校驗和,將它們與資料節點中儲存的校驗和進行比較。
每個資料節點都持久化乙個用於驗證的校驗和日誌。
客戶端成功驗證乙個資料塊後,會告訴這個資料節點,資料節點由此更新日誌。
3、恢復資料
由於hdfs儲存著每個資料塊的備份,它可以通過複製完好的資料備份來修復損壞的資料塊來恢復資料。
4、localfilesystem類
hadoop的localfilesystem類是用來執行客戶端的校驗和驗證。
當寫入乙個名為filename的檔案時檔案系統客戶端會在包含檔案塊校驗和的
同一目錄內建立乙個名為filename.crc的隱藏檔案。
5、checksumfilesystem類
localfilesystem類通過checksumfilesystem類來完成自己的任務
filesystem rawfs;
filesystem checksummedfs=new checksumfilesystem(rawfs);
可以通過checkfilesystem的getrawfilesystem()方法獲取原始檔系統。
當檢測到錯誤,checkfilesystem類會呼叫reportchecksumfailure()方法報告錯誤,
然後localfilesystem將這個出錯的檔案和校驗和移到名為bad_files的資料夾內,
管理員可以定期檢查這個資料夾。
6、datablockscanner
資料節點後台有乙個程序datablockscanner,定期驗證儲存在這個資料節點上的所有資料項,
該項措施是為解決物理儲存媒介上的損壞。
datablockscanner是作為資料節點的乙個後台執行緒工作的,跟著資料節點同時啟動
MySQL資料完整性(實體完整性 域完整性)
資料完整性 為保證插入到資料庫中的資料是正確的,防止使用者輸入錯誤的資料 分為實體完整性 域完整性 參照完整性 下節再說 1 實體完整性 實體指的是表中的一行,一行記錄對應乙個實體 通過主鍵實現 主鍵 關鍵字 primary key 特點 不能為null,並且唯一。邏輯主鍵 推薦 例如id,不代表實...
HDFS如何保證資料的完整性
總的來說,hdfs 會對寫入的資料計算校驗和,並在讀取資料時驗證校驗和。具體來說,datanode 負責收到資料後儲存該資料及其校驗和。datanode 的資料 可分為兩種 其一為是從客戶端收到的資料,其二為從其他 datanode 複製來的資料。還有一種情況,客戶端將資料及其校驗和傳送到由一系列 ...
資料完整性
資料完整性定義 是指資料庫中的資料的正確性和完整性。資料完整性的型別 要求的資料。not null。有效檢查。資料的有效範圍檢查。字段檢查約束。資料域。實體完整性。主鍵欄位唯 一 非空。引用完整性引發的問題 1 插入 更新子表記錄的外鍵值在主表主鍵中不存在。2 刪除 更新父表的主鍵記錄有關聯外來鍵記...