我在Hadoop 3.2.0中使用-write
选项运行TestDFSIO,它工作得很好,但是随后当我使用-read
选项运行该测试并且使用完全相同的参数时,会出现校验和错误。 / p>
据我所知,这是由于以下原因: 检测损坏的数据的通常方法是:在数据首次进入系统时,然后每当通过不可靠的通道传输数据并因此有能力破坏数据时,计算该数据的校验和。如果新生成的校验和与原始数据不完全匹配,则认为数据已损坏。
并非总是会出现此问题,特别是对于大文件。但是,执行此操作时,错误消息是:
Error: org.apache.hadoop.fs.ChecksumException: Checksum error: /tmp/hadoop_fuse/benchmarks/TestDFSIO/io_data/test_io_16 at 234880000 exp: 0 got: -1297451656
在这种情况下为什么会损坏数据,以及如何解决此问题?