2017-03-21 4 views
2

Ich habe einen Index mit 5 primären Shards und keine Replikate.So löschen Sie Daten aus einem bestimmten Shard

Einer meiner Shard (Shard 1) ist im nicht zugewiesenen Zustand. Wenn ich die Protokolldatei überprüft, fand ich unter Fehler aus:

2obv65.nvd, _2vfjgt.fdx, _3e3109.si, _3dwgm5_Lucene45_0.dvm, _3aks2g_Lucene45_0.dvd, _3d9u9f_76.del, _3e30gm.cfs, _3cvkyl_es090_0.tim, _3e309p.nvd, _3cvkyl_es090_0.blm]]; nested: FileNotFoundException[_101a65.si]; ]]

Wenn i den Index überprüft, konnte ich die 1101a65.si-Datei für die Scherbe nicht finden.

Ich kann die fehlende Datei .si nicht finden. Ich habe viel versucht, aber konnte den Shard 1 nicht wieder zuweisen.

Gibt es eine andere Möglichkeit, den Shard 1 erneut zuweisen? oder muss ich die gesamten shard 1 Daten löschen?

Bitte vorschlagen.

+0

@ Val..could Bitte helfen Sie mir dabei. –

+0

Wie, irgendwelche Knoten laufen Sie im Cluster? (Haben Sie mindestens ein Replikat, und wenn ja, zeigt es dasselbe Verhalten?) Welche Version von Elasticsearch verwenden Sie auch? – Adonis

+0

Im Cluster laufen 3 Knoten. Von den 3, 2 Knoten sind Datenknoten und einer ist Master-Knoten. Im Cluster ist kein Replikat vorhanden. Ich verwende ziemlich alte Version, d. H. 1.1.2. –

Antwort

0

Normalerweise in dem Stack-Trace sollten Sie den Pfad zu dem beschädigten Scherbe sehen, so etwas wie MMapIndexInput(path="path/to/es/db/nodes/node_number/indices/name_of_index/1/index/some_file) (hier die ist die Scherbe Nummer)

Normalerweise path/to/es/db/nodes/node_number/indices/name_of_index/1 Löschen sollte die Scherbe erholen. Wenn Sie es noch nicht zugeordnet Versuch Senden Sie diesen Befehl an den Cluster sehen (in der Regel als pro the documentation, sollte es funktionieren, obwohl ich nicht sicher ES 1.x Syntax und Befehle bin):

POST _cluster/reroute 
{ 
    "commands" : [ 
     { 
      "allocate" : { 
       "index" : "myIndexName", 
       "shard" : 1, 
       "node" : "myNodeName", 
       "allow_primary": true 
      } 
     } 
    ] 
} 
+0

Muss ich den Cluster neu starten, damit die nicht zugewiesenen Shards zugewiesen werden? wie ich vorgeschlagen habe, habe ich den Pfad gelöscht:/var/opt/elasticsearch/Daten/elasticsearch-sp/Knoten/0/Indizes/twitter/1/index, aber ich sehe immer noch die betroffenen Shard als nicht zugewiesen . –

+0

Haben Sie den Neuzuweisungsbefehl versucht? Haben Sie immer noch einen Fehler in den Protokollen? – Adonis

+0

es funktioniert ... ich habe versucht, mit der Neuzuweisung Befehl und jetzt ist der Shard im gestarteten Zustand .. ich konnte dies in der elasticsearch.log-Datei sehen: [2017-03-21 16: 56: 11.412] [ INFO] [cluster.routing.allocation] [Agent] Der Status des Clusters wurde von [ROT] in [GELB] geändert (Grund: [shards started [[twitter] [1]] ...]). Dank @asettatouf für Ihre Hilfe .. –

Verwandte Themen