hdfs数据完整性

hdfs会对写入的所有数据计算校验和,在数据通过不可靠通道传输的时候再次计算校验和,对比就能发现数据是否损坏,常用的通过32位循环冗余校验,在hadoop中,可以通过checksum命令得到想要的文件的校验和,对同一任务和输入的输出进行校验和比较


相同文件的校验和比较

可见,输出结果是相同的
datanode负责在收到数据后存储数据前对校验和进行检查,如果datanode检测到错误,客户端会受到一个异常,处理方式以应用程序特定的方式,比如重试该操作。
客户端从datanoded读取数据时,也会检验校验和,datanode持有一个校验的日志,用来保存每个数据块被客户端校验后的最后一次验证时间。datanode自己也会定期验证所有的数据块。
hdfs存储着每个数据块的副本,因此可以通过数据副本来修复损坏的数据块。

你可能感兴趣的:(hdfs数据完整性)