2014-06-17 9 views
6

Wir haben derzeit einen bulligen 12-Knoten-Cluster, wo alle Knoten masterfähig sind, Clients und Daten. Kürzlich haben wir ein Split-Brain-Problem, bei dem der Master lange genug nicht reagierte, dass ein anderer Knoten sich selbst wählte. Dies, obwohl alle Knoten hoch sind und minimum_master_nodes auf 7 gesetzt ist (der neue Master könnte 10 andere geeignete Knoten sehen). Wir möchten das Risiko verringern, indem wir nur 3 der Knoten als Master-fähig und die anderen 9 als Clients festlegen, während alle 12 Datenknoten bleiben. hatte ich angenommen, wir konnten einfach eingestellt:Erstellen separater elasticsearch Knoten von Master + Daten und Client + Daten

node.master: true 
node.client: false 
node.data: true 

auf 3 der Knoten und:

node.master: false 
node.client: true 
node.data: true 

auf der anderen Seite 9. , die in Folge:

"org.elasticsearch.ElasticsearchIllegalStateException: node is not configured to store local location" 

Ich habe Ich habe vergebens gesucht. Gibt es einen richtigen Weg, dies zu erreichen?

Antwort

22

Ich würde überspringen mit node.client - es tatsächlich Konflikte mit Ihrer node.data Einstellung und das ist, was die Fehlermeldung verursacht. Es ist auch nicht erforderlich.

Sie benötigen nur node.master und node.data. Wenn beide wahr sind (der Standardwert), handelt es sich sowohl um einen Datenknoten als auch um einen Hauptknoten. Wenn Master falsch ist und Daten wahr sind, handelt es sich um einen Nur-Daten-Knoten. Wenn der Master wahr ist und Daten falsch sind, handelt es sich um einen Master-Knoten. Und wenn beide falsch sind, ist es ein Client-Knoten.

Von der aktuellen Standard elasticsearch.yml Datei für Version 1.2.1:

# You can exploit these settings to design advanced cluster topologies. 
# 
# 1. You want this node to never become a master node, only to hold data. 
# This will be the "workhorse" of your cluster. 
# 
#node.master: false 
#node.data: true 
# 
# 2. You want this node to only serve as a master: to not store any data and 
# to have free resources. This will be the "coordinator" of your cluster. 
# 
#node.master: true 
#node.data: false 
# 
# 3. You want this node to be neither master nor data node, but 
# to act as a "search load balancer" (fetching data from nodes, 
# aggregating results, etc.) 
# 
#node.master: false 
#node.data: false 
+0

Total die Konfigurations Kommentare verpasst! Wir erhalten eine abgespeckte Konfiguration, die über die Puppe verteilt wird, aber wir brauchen natürlich auch die Kommentare. Wir finden diese Einstellung: node.client: false auf den Master + Datenknoten und node.master: false auf dem Client + Datenknoten funktioniert. Danke! – user3750347

+0

@ user3750347 Bitte markieren Sie dies als die beste Antwort. – Aaron

Verwandte Themen