/ / Elasticsearch index corrompu - elasticsearch, lucene

Elasticsearch index est corrompu - elasticsearch, lucene

Je reçois les journaux suivants de la boîte de recherche elasticsearch:

org.apache.lucene.index.CorruptIndexException: [myindex][2] Preexisting corrupted index [corrupted_5Y_pGXmYQOG5PGlZURWqxw] caused by: CorruptIndexException[checksum failed (hardware problem?) : expected=9cf1207c actual=4eda74a3 (resource=BufferedChecksumIndexInput(NIOFSIndexInput(path="/mnt/vol1/myindex/nodes/0/myindex/index/2/index/_3758.fdt")))]
org.apache.lucene.index.CorruptIndexException: checksum failed (hardware problem?) : expected=9cf1207c actual=4eda74a3 (resource=BufferedChecksumIndexInput(NIOFSIndexInput(path="/mnt/vol1/my/indexnodes/0/indices/myindex/2/index/_3758.fdt")))
at org.apache.lucene.codecs.CodecUtil.checkFooter(CodecUtil.java:211)
at org.apache.lucene.codecs.CodecUtil.checksumEntireFile(CodecUtil.java:268)
at org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.checkIntegrity(CompressingStoredFieldsReader.java:535)
at org.apache.lucene.index.SegmentReader.checkIntegrity(SegmentReader.java:624)
at org.apache.lucene.index.SegmentMerger.<init>(SegmentMerger.java:61)
at org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:4158)
at org.apache.lucene.index.IndexWriter.merge(IndexWriter.java:3768)
at org.apache.lucene.index.ConcurrentMergeScheduler.doMerge(ConcurrentMergeScheduler.java:405)
at org.apache.lucene.index.TrackingConcurrentMergeScheduler.doMerge(TrackingConcurrentMergeScheduler.java:106)
at org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(ConcurrentMergeScheduler.java:482)

at org.elasticsearch.index.store.Store.failIfCorrupted(Store.java:452)
at org.elasticsearch.index.store.Store.failIfCorrupted(Store.java:433)
at org.elasticsearch.indices.cluster.IndicesClusterStateService.applyInitializingShard(IndicesClusterStateService.java:725)
at org.elasticsearch.indices.cluster.IndicesClusterStateService.applyNewOrUpdatedShards(IndicesClusterStateService.java:578)
at org.elasticsearch.indices.cluster.IndicesClusterStateService.clusterChanged(IndicesClusterStateService.java:182)
at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:431)
at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:153)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

Quelqu'un peut-il dire comment résoudre le problème? En outre, quelles sont les meilleures pratiques pour réduire ce problème?

Auparavant, j'avais un problème similaire pour lequel je devais supprimer le contenu de la boîte de réplica et le réaffecter au cluster. Je me suis alors arrangé pour quelques jours, mais il est réapparu aujourd'hui.

MODIFIER: Le problème était que toute la boîte elasticsearchpartageaient le même disque dur. Ainsi, lorsque plusieurs répliques tentent d’écrire sur le même emplacement, le disque s’est écrasé. Cela a été fait par erreur et maintenant je crée des disques individuels pour chaque réplica.

Réponses:

0 pour la réponse № 1

Cela dépend de la version ES que vous êtes. Avant 1.3.2 vous pouvez essayer de définir la compression de récupération des index sur false.

J'ai vécu cette exception sur 1.3.2. La cause était un disque complet. Certains fragments ont récupéré après un bon moment, d'autres pas. La réindexation a aidé.