在 HDFS(Hadoop Distributed File System)中,校验和(Checksum)的计算和验证在读数据和写数据时都会发生。不仅如此,HDFS 还在后台定期进行校验和检查。 HDFS 引入校验和的核心目的是为了保证数据的完整性,防止因网络传输错误、磁盘损坏(Bit Rot / 坏道)等硬件原因导致的数据损坏。 以下是校验和在 HDFS 中具体的工作机制详解: 一、 校验和的基本单位 在了解读写流程之前,需要先知道 HDFS 计算校验和的粒度: HDFS 并不是针对整个文件或整个 Block(默认 128MB)计算一个校验和,而是针对更小的数据块(称为 Chunk)来计算。 默认情况下,每 512 字节(Bytes)的数据计算出一个 4 字节的校验和(默认采用 CRC32C 算法)。 这种设计带来的额外存储开销不到 1%,但能提供极高的数据完整性保障。 --- 二、 写数据时的校验和(生成与初步验证) 当客户端(Client)向 HDFS 写入数据时,流程如下: 1. 客户端生成校验和: 客户端在将数据发送到 DataNode 之前,会按每 512 字节为一个...