版本: 6.8-7.15
简而言之,当 Elasticsearch 检测到数据文件损坏时会出现此错误。这可能是由于硬件问题、网络问题或 Elasticsearch 中的缺陷导致的。要解决此问题,您可以尝试从备份恢复数据。如果无法恢复,可以删除损坏的分片并允许 Elasticsearch 重新创建它。但这会导致数据丢失。为了防止将来出现此问题,请确保您的硬件可靠、网络稳定,并且您使用的是稳定版本的 Elasticsearch。
日志上下文 #
日志 “checksum verification failed - expected: 0x” 的类名是 Translog.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解的人参考:
static void verifyChecksum(BufferedChecksumStreamInput in) throws IOException {
// This absolutely must come first; or else reading the checksum becomes part of the checksum
long expectedChecksum = in.getChecksum();
long readChecksum = Integer.toUnsignedLong(in.readInt());
if (readChecksum != expectedChecksum) {
throw new TranslogCorruptedException(in.getSource(); "checksum verification failed - expected: 0x" +
Long.toHexString(expectedChecksum) + "; got: 0x" + Long.toHexString(readChecksum));
}
} /**





