2014-09-08 10 views
9

मुझे यह त्रुटि मिल रही है, मेरे ईएस लॉग में मैं तीन नोड्स का उपयोग कर रहा हूं।ElasticSearch IndexShardGatewayRecoveryException में शेड शुरू करने में विफल "विफल रहा"

Caused by: java.lang.ArrayIndexOutOfBoundsException 
[2014-09-08 13:53:56,167][WARN ][cluster.action.shard  ] [Dancing Destroyer] [events][3] sending failed shard for [events][3], node[RDZy21y7SRep7n6oWT8ogg], [P], s[INITIALIZING], indexUUID [gzj1aHTnQX6XDc0SxkvxDQ], reason [Failed to start shard, message [IndexShardGatewayRecoveryException[[events][3] failed recovery]; nested: FlushFailedEngineException[[events][3] Flush failed]; nested: ArrayIndexOutOfBoundsException; ]] 
[2014-09-08 13:53:56,357][WARN ][indices.cluster   ] [Dancing Destroyer] [events][3] failed to start shard 
org.elasticsearch.index.gateway.IndexShardGatewayRecoveryException: [events][3] failed recovery 
     at org.elasticsearch.index.gateway.IndexShardGatewayService$1.run(IndexShardGatewayService.java:185) 
     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) 
Caused by: org.elasticsearch.index.engine.FlushFailedEngineException: [events][3] Flush failed 
     at org.elasticsearch.index.engine.internal.InternalEngine.flush(InternalEngine.java:805) 
     at org.elasticsearch.index.shard.service.InternalIndexShard.performRecoveryFinalization(InternalIndexShard.java:726) 
     at org.elasticsearch.index.gateway.local.LocalIndexShardGateway.recover(LocalIndexShardGateway.java:249) 
     at org.elasticsearch.index.gateway.IndexShardGatewayService$1.run(IndexShardGatewayService.java:132) 
     ... 3 more 
Caused by: java.lang.ArrayIndexOutOfBoundsException 
[2014-09-08 13:53:56,381][WARN ][cluster.action.shard  ] [Dancing Destroyer] [events][3] sending failed shard for [events][3], node[RDZy21y7SRep7n6oWT8ogg], [P], s[INITIALIZING], indexUUID [gzj1aHTnQX6XDc0SxkvxDQ], reason [Failed to start shard, message [IndexShardGatewayRecoveryException[[events][3] failed recovery]; nested: FlushFailedEngineException[[events][3] Flush failed]; nested: ArrayIndexOutOfBoundsException; ]] 

इसका मतलब है कि ईएस की स्थिति लाल है और मुझे लगभग 10 मिलियन दस्तावेज गायब हैं। इस त्रुटि का क्या अर्थ है, ताकि मैं ठीक हो सकूं?

उत्तर

12

ऐसा लगता है कि मेरे पास एक गड़बड़ हो गई थी, जिसे फिक्सिंग की आवश्यकता थी। यह Lucene चीज है, जहां आप श्वेत को ठीक करने के लिए लुसीन को बताते हैं।

Ubuntu के लिए, समाधान /usr/share/elasticsearch/lib निर्देशिका पर जाकर पता लगाना जो Lucene कोर संस्करण (ls चल आप Lucene कोर-4.8.1.jar की तरह एक फ़ाइल का नाम कुछ दिखाई देगा) चला रहा था और फिर टाइप करने के लिए था :

java -cp lucene-core-x.x.x.jar -ea:org.apache.lucene... org.apache.lucene.index.CheckIndex /var/lib/elasticsearch/<clustername>/nodes/0/indices/<index>/<shard>/index/ -fix 

Lucene कोर संस्करण के साथ xxx, सूचकांक के नाम के साथ और नाकाम रहने ठीकरा संख्या के साथ निश्चित रूप से सूचकांक बदलें, अपने CLUSTERNAME साथ।

यह संभवतः दस्तावेजों

का नुकसान दे सकता है लेकिन यह हमारे समस्या का समाधान हो।

+1

क्या आपके पास यह और जानकारी क्यों है? क्या आपके द्वारा उठाए गए कोई निवारक उपायों हैं ?? –

+0

@EricUldall मैं अपना मामला हूं, मेरा सर्वर डिस्क स्पेस से बाहर चला गया, जिसने शायद डिस्क पर आंशिक डेटा लिखने के लिए ईएस का नेतृत्व किया। – Oleander

+1

इस के लिए धन्यवाद, आपने कुछ परेशानी बचाई है। मैंने स्वचालित रूप से इसे ठीक करने के लिए एक सरल [रूबी स्क्रिप्ट] (https://gist.github.com/atmosx/54a7e4904d4b36aea3bb) बनाया है। –

2

Repox से संकेत लेना। शेफ का उपयोग करके प्रावधान लॉगस्टैश में अंतर्निहित लोचदार खोज के साथ केंद्र 6.5 में।

java -cp /opt/logstash/forwarder/vendor/jar/elasticsearch-1.1.1/lib/lucene-core-4.7.2.jar -ea:org.apache.lucene... org.apache.lucene.index.CheckIndex /opt/logstash/forwarder/data/elasticsearch/nodes/0/indices/logstash-2014.11.01/3/index/ -fix

लेकिन फिर भी मैं फिक्सिंग के साथ अभी भी शर्ट शुरू करने में विफल, संदेश ... shard को पुनर्प्राप्त करने में विफल रहा। मुझे curator delete --older-than 3 का उपयोग करके विनाशकारी रूप से हटाना होगा।

5

मुझे इस समस्या का कई बार सामना करना पड़ा। चूंकि मेरा सेट अप क्लिकस्ट्रीम डेटा (12-20 एम एक दिन हिट करता है) पढ़ने के लिए है, मैं डेटा हानि बर्दाश्त नहीं कर सका।

तो यह मेरा समाधान था और यह खूबसूरती से चलाता है:

समाधान: चल

  • जाना से

    1. बंद करो elasticsearch को/path/to/मेरी/डेटा/mycluster_name/नोड्स/0/इंडेक्स/myindex_name/अनुक्रमणिका
    2. सेगमेंट हटाएं।जनरल कारण

      1. शार्ड्स फ़ाइल

      2. प्रारंभ elasticsearch

      समस्या रूट विभिन्न कारणों से विफल है, खासकर जब टुकड़े Kibana अनुरोध को पूरा करने में सक्षम नहीं हैं।

    3. लुसीन सीधे इस प्रक्रिया से जुड़ा नहीं है। तो जब समस्याएं होती हैं, तो लोचदार खोज ल्यूसीन सेगमेंट संदर्भों से शार्ड्स वैल्यू को कुशलता से चुनने में सक्षम नहीं होता है जो सेगमेंट में संग्रहीत होते हैं .gen

    4. लुसीन अगले चरण में फिर से इस मान को ताजा सेट करता है। तो elasticsearch मूल्यों को सही ढंग से संदर्भित करने में सक्षम है। और शार्ड मुद्दा हल हो गया है।

  • संबंधित मुद्दे