📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 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));
 }
 }  /**