2016-07-20 10 views
0

Ich verwende elasticsearch 2.1.1 und habe einen Cluster von 8 Knoten (3 Master-Knoten + 5 Datenknoten). Ich habe versucht, den gesamten Cluster neu zu starten, aber endete mit einem seltsamen Problem (ich konnte kein Problem in den Protokollen finden).Elasticsearch: beim Neustart des gesamten Clusters - Shards werden nicht wiederhergestellt und verbleiben als nicht zugewiesene Shards

Ich habe gerade alle Knoten heruntergefahren und neu gestartet. Alles lief gut bis hier, aber nach dem Neustart erholten sich die Scherben nicht und sie blieben einfach im nicht zugewiesenen Zustand.

Mein Cluster hat genügend Speicherplatz und ich habe alle Daten neu gestartet. Trotzdem erholten sich alle Scherben einfach nicht. Könnte mir jemand dabei helfen?

Ich habe versucht, zwicken Konfigurationen wie gateway.recover_after_nodes und "cluster.routing.allocation.enable": "all" konnte aber nicht gelungen.

Update:

Das hier Problem ist, zunächst hatte ich Replik 4 d.h Ich hatte 5 Kopien von Daten mit primären enthalten in 5 Datanodes. Als ich den Cluster neu startete, habe ich nur 3 Datenknoten gestartet, die maximal 3 Kopien von Daten enthalten, aber um die Zuordnung von veralteten Shard-Kopien zu verhindern, verwendet ES die Konfiguration index.recovery.initial_shards, für die der Standardwert Quorum ist (4 in meinem Fall). Um Shards vom vollständigen Cluster-Neustart wiederherstellen zu können, muss ich also mindestens Quorum-Daten-Knoten anlegen oder das Replikat entsprechend verkleinern (< = 3 in meinem Fall).

Edit:

Probenergebnisse (haben viele Indizes wie diese) von GET /_cat/indices?v:

health status index       pri rep docs.count docs.deleted store.size pri.store.size 
red open kafka8-2016.07    10 3             
red open kafka8-2016.06    10 3             
red open .kibana      1 3 

Probenergebnisse von GET /_cat/shards?v

index    shard prirep state  docs store ip node 
kafka8-2016.07  5  p  UNASSIGNED      
kafka8-2016.07  5  r  UNASSIGNED      
kafka8-2016.07  5  r  UNASSIGNED      
kafka8-2016.07  5  r  UNASSIGNED      
kafka8-2016.07  1  p  UNASSIGNED      
kafka8-2016.07  1  r  UNASSIGNED      
kafka8-2016.07  1  r  UNASSIGNED      
kafka8-2016.07  1  r  UNASSIGNED 

Ergebnisse (viele Scherben wie diese haben) GET _cat/nodes?v:

host ip heap.percent ram.percent load node.role master name  
host1 ip1   0   82 0.00 d   -  data-3 
host2 ip2   0   87 0.00 d   -  data-4 
host3 ip3   1   80 0.00 -   *  master-2 
host4 ip4   1   73 0.00 -   m  master-1 
host4 ip5   1   84 0.00 d   -  data-1 
+0

Bitte aktualisieren Sie Ihre Frage mit dem Ergebnis, das Sie vom Laufen 'curl localhost erhalten: 9200/_cat/shards? v' und 'curl localhost: 9200/_cat/indices? v' – Val

+0

Und alle Ihre Knoten sind betriebsbereit und ordnungsgemäß ausgeführt? Kannst du folgendes hinzufügen: 'curl localhost: 9200/_cat/nodes? V' – Val

+0

Drei Knoten (2 Datenknoten + 1 Master-Knoten) sind ausgefallen, aber ich habe genug Replikation und zen.minimum benötigte Master-Knoten – avr

Antwort

0

Wenn Sie den vollständigen Cluster-Neustart durchführen, müssen Sie mindestens das Quorum Ihrer Datenknoten starten. Dies wird durch index.recovery.initial_shards konfiguriert, die verhindert, dass veraltete Shards kopiert werden.

index.recovery.initial_shards

Eine primäre Scherbe gewonnen wird nur nur wenn genügend Knoten zur Verfügung stehen, um eine ausreichende Repliken Form ein Quorum zuzuteilen.

Quorum (default)

Quorum-1 (oder die Hälfte)

voll

Voll 1: Es kann eingestellt werden.

Die Zahlenwerte sind werden ebenfalls unterstützt, z. 1.

Sie können mehr über diese Konfiguration in offiziellen Dokumente lesen here

Sie ähnliches Problem finden in diesem elasticsearch github comment erklärt