HDFS中的数据完整性:哪些数据节点验证校验和?

问题描述:

Hadoop: The Definitive Guide, Second EditionHDFS中的数据完整性:哪些数据节点验证校验和?

A.的Datanode负责存储数据 及其校验和之前验证他们收到的数据。

他们是否通过验证校验和来验证数据? B.客户端写入数据将其发送到数据节点的管道(如第3章所述),并且管道中的最后一个数据节点验证校验和。那么,这是否意味着每个数据节点都会验证校验和(如A中所述),或者只有流水线中最后一个数据节点验证校验和(如B中所述)。

这取决于您正在运行的Hadoop版本。最新版本只对最后一个数据节点进行校验和检查,因为没有真正的理由在JIRA中解释每个节点:https://issues.apache.org/jira/browse/HADOOP-3328

其值得注意的是,客户端在读取块时,也会检查每块读取的校验和。如果块与它们相应的校验和不匹配,那么客户端将从具有该块的副本的另一个datanode请求相同的块。

+1

另外,校验和是每个“dfs.bytes-per-checksum”完成的,默认为512字节。 – 2012-02-23 04:29:42