2017-02-15 1 views
0

Ich habe einen ES-Cluster mit ES erstellt, der auf drei verschiedenen Rechnern läuft. Um sie als Cluster zu machen, habe ich die Unicast-Konfiguration wie unten in allen 3 Maschinen in elasticsearch.yml Konfigurationsdatei hinzugefügt.Der Splitter aus dem ES-Cluster kann nicht freigegeben werden.

discovery.zen.ping.unicast.hosts:[IP1, IP2, IP3] 

Wenn ich

curl -XGET localhost:9200/_cluster/health?pretty 

Am bekommen No_of_nodes als 3. Nun laufen wollte ich so einen Knoten aus dem Cluster entfernen, ohne jede Konfigurationsdatei zu ändern lief ich den unter Befehl

curl -XPUT localhost:9200/_cluster/settings -d '{ 
"transient" :{ 
    "cluster.routing.allocation.exclude._ip" : "IP_adress_of_Node3" 
} 
}'; 

Danach habe ich den zweiten Befehl erneut ausgeführt, um die Clusterdetails zu erhalten, die erwartete Ausgabe ist NO_of_nodes sollte 2 sein, aber im Ergebnis zeigt es die Anzahl der Knoten = 3 immer noch vor n nach dem Ausschluss des Knotens. Es wird eine große Hilfe sein, wenn jemand mir bitte sagen kann, was in den Schritten zum Entfernen des Knotens falsch ist.

Dank

Antwort

2

Der Befehl cluster.routing.allocation.exclude._ip, die Sie Ihren Cluster nicht tatsächlich den Knoten aus dem Cluster entfernen gesendet, sondern es zum Entfernen vor. Dadurch wird Elasticsearch angewiesen, alle auf diesem Knoten befindlichen Shards von diesem Knoten weg zu verschieben und sie stattdessen auf anderen Knoten zu speichern. Dies ermöglicht Ihnen, den Knoten zu entfernen, sobald dieser leer ist, ohne zu einer Unterreplikation der auf diesem Knoten gespeicherten Shards zu führen.

Um den Knoten tatsächlich aus Ihrem Cluster zu entfernen, müssen Sie ihn aus der Liste der Unicast-Hosts entfernen. Natürlich können Sie es auch einfach herunterfahren und in der Liste belassen, bis Sie als nächstes den Cluster neu starten müssen, soweit mir bewusst ist, dass nichts schadet.

+0

Danke für die Eingaben, ich habe eine mehr, so dass die Einträge, die ich in der Unicast gemacht wird richtig ist richtig? Ich möchte sagen, dass ich in meiner Konfigurationsdatei einen Eintrag für alle 3 Knoten in allen 3 Maschinenkonfigurationsdateien gemacht habe, ist es richtig? –

+0

Und auch mit der Exclude-API sollte es den Shard unter der ausgeschlossenen IP zu den verbleibenden Nodes bewegen, aber in meinem Fall sehe ich immer noch die Shards unter Node, der für ausgeschlossen markiert ist. Was könnte das Problem sein? –

+0

Es gibt noch andere Dinge, die Elasticsearch bei der Neuverteilung von Shards berücksichtigt (Replikationsfaktor, Festplattenspeicher, ...). Daher könnte es eine Reihe von Gründen geben, warum die Shards in Ihrem speziellen Fall nicht neu zugeordnet werden . Könnten Sie die Allokation explain api (https://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-allocation-explain.html) ausführen und eine neue Frage mit der Ausgabe davon erstellen? –

Verwandte Themen