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

时间:2012-02-23 02:52:27

标签: hadoop

根据Hadoop: The Definitive Guide, Second Edition

  

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

他们是否通过验证校验和来验证数据?

  

B中。写入数据的客户端将其发送到数据节点管道(如第3章所述),管道中的最后一个datanode验证校验和。

那么,是否意味着每个datanode都会验证校验和(如A中所述),或者只有管道中的最后一个datanode验证校验和(如B中所述)。

1 个答案:

答案 0 :(得分:2)

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

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