2012-02-23 46 views
1

Hadoop: The Definitive Guide, Second EditionHDFS中的數據完整性:哪些數據節點驗證校驗和?

A.的Datanode負責存儲數據 及其校驗和之前驗證他們收到的數據。

他們是否通過驗證校驗和來驗證數據? B.客戶端寫入數據將其發送到數據節點的管道(如第3章所述),並且管道中的最後一個數據節點驗證校驗和。那麼,這是否意味着每個數據節點都會驗證校驗和(如A中所述),或者只有流水線中最後一個數據節點驗證校驗和(如B中所述)。

回答

2

這取決於您正在運行的Hadoop版本。最新版本只對最後一個數據節點進行校驗和檢查,因爲沒有真正的理由在JIRA中解釋每個節點:https://issues.apache.org/jira/browse/HADOOP-3328

其值得注意的是,客戶端在讀取塊時,也會檢查每塊讀取的校驗和。如果塊與它們相應的校驗和不匹配,那麼客戶端將從具有該塊的副本的另一個datanode請求相同的塊。

+1

另外,校驗和是每個「dfs.bytes-per-checksum」完成的,默認爲512字節。 – 2012-02-23 04:29:42