Я запускаю TestDFSIO с параметром -write
в Hadoop 3.2.0, и он работает просто отлично, но потом, когда я запускаю этот тест с параметром -read
и с точно такими же аргументами, я получаю ошибку контрольной суммы.
Насколько мне известно, это связано со следующим: Обычный способ обнаружения поврежденных данных - вычисление контрольной суммы для данных, когда они впервые поступают в систему, а затем всякий раз, когда они передаются по ненадежному каналу и, следовательно,способен испортить данные.Данные считаются поврежденными, если вновь созданная контрольная сумма не совсем соответствует оригиналу.
Проблема не всегда возникает, особенно для больших файлов.Но когда это происходит, появляется сообщение об ошибке: Error: org.apache.hadoop.fs.ChecksumException: Checksum error: /tmp/hadoop_fuse/benchmarks/TestDFSIO/io_data/test_io_16 at 234880000 exp: 0 got: -1297451656
Почему данные повреждены в этом случае, и как решить эту проблему?