HDFS 会对写入的所有数据计算
校验和(
checksum
)
,并在读取数据时
验证校验和
。针对指定字节的数目计算校验和。字节数默认是512 字节,可以通过
io.bytes.per.checksum
属性设置。通过CRC-32编码后为4字节。
Datanode 在保存数据前负责验证
checksum
。client 会把数据和校验和一起发送到一个由多个datanode 组成的队列中,最后一个Datanode 负责验证
checksum

HDFS在写入数据时计算并验证校验和,采用CRC-32编码,字节数默认为512字节。客户端在发送数据到Datanode时会一同发送校验和,最后一个Datanode负责验证。读取时,客户端和Datanode也会进行校验。DataBlockScanner定期在后台验证Datanode的数据块。用户可以选择忽略校验,如通过`hadoop fs get -ignoreCrc`或在API中设置`setVerifyChecksum(false)`。LocalFileSystem会创建隐藏的`.filename.crc`文件进行客户端校验,可通过RawLocalFileSystem禁用此功能。

1762

被折叠的 条评论
为什么被折叠?



