数据完整性
检测数据完整性的常见方法:在数据第一次引入系统时计算校验和(checksum),并在每一次通道传输时再次计算,比较两次校验和是否匹配,这只能检测数据是否有损坏,而不能修复数据
常见的错误检测码是CRC-32(32位循环冗余校验),任何大小的数据都计算获取32位大小的校验和
Hadoop ChecksumFileSystem使用CRC-32, Hadoop HDFS使用更有效的变体CRC-32C
HDFS数据完整性
1) dfs.bytes-pr-checksum指定每多少字节的数据计算一次校验和,默认512bytes,而CRC-32只占4bytes,存储开销不到1%
2) 写入