Elasticsearch Shard Rebalancing Tutorial

Elasticsearch Shard Rebalancing Tutorial
Eine Elasticsearch -Shard ist eine Einheit, mit der die Elasticsearch -Engine Daten in einem Cluster verteilen kann. In Elasticsearch sagen wir, dass ein Cluster „ausgewogen“ ist, wenn er eine gleiche Anzahl von Scherben auf jedem Knoten enthält, ohne eine große Konzentration von Scherben auf einem einzelnen Knoten zu haben. Abhängig davon, wie Sie Elasticsearch konfigurieren, führt es automatisch Shards in Ihrem Cluster aus, um die Leistung zu verbessern.

Das automatische Shard-Ausgleich entspricht Einschränkungen und Regeln wie der Zuteilungsfilterung und dem erzwungenen Bewusstsein, was zu einem möglichst effizientesten und ausgewogensten Cluster führt.

NOTIZ: Verwechseln Sie die Shard -Neuzuweisung nicht, bei der es darum geht, nicht zugewiesene Scherben zu den Knoten zu finden und zu bewegen. Rebalancing nimmt zugewiesene Scherben ein und bewegt sie gleichmäßig auf verschiedene Knoten, wobei der Zweck die gleiche Verteilung der Scherben pro Knoten ist.

So ermöglichen Sie das automatische Neuausgleich

Um das automatische Cluster -Wiederausgleich in Elasticsearch zu ermöglichen, können wir den Endpunkt der Put -Anforderung zum API -Endpunkt der Put -API verwenden und die Einstellungen hinzufügen, die wir benötigen.

Zu den Einstellungen für die dynamische Shard -Wiederausrichtung gehören:

  • Cluster.Routing.Wiedereinlebnis.ermöglichen: Steuert die automatische Neuausgleichung für verschiedene Scherbentypen, wie z. B.:
  • Alle: Sets ermöglichen das Ausgleich von Shards für alle Indizes.
  • Keiner: Deaktiviert die Shard -Wiederausgleich für alle Indizes.
  • Repliken: Nur Replica Shard -Wiederausgleich ist erlaubt.
  • Primär: Es ist nur primäres Shard -Ausgleich zulässig.
  • Cluster.Routing.Zuweisung.ALLGESTELLUNG: Legt den Wert für das Ausgleich von Shards fest. Zu den Optionen gehören:
    • Stets: Ermöglicht auf unbestimmte Zeit das Neuzustand.
    • INDICES_PRIMIEDE_AKTIVE: Ermöglicht das Neuzustand nur, wenn alle primären Scherben im Cluster zugewiesen werden.
    • Indices_all_active: Ermöglicht das Neuzustand, wenn nur die Scherben im Cluster zugewiesen werden. Dies schließt sowohl die Primär- als auch die Replik -Scherben ein.
  • Cluster.Routing.Zuweisung.Cluster.gleichzeitig.Wiedereinlebnis: Diese Option legt die Anzahl der im Cluster zulässigen gleichzeitigen Umstände fest. Der Standardwert ist 2.

Betrachten Sie die folgende Anfrage, um das automatische Shard -Rebalancing für den Cluster zu ermöglichen.

Put /_cluster /Einstellungen

"hartnäckig":
"Cluster.Routing.Wiedereinlebnis.Aktivieren ":" Vorwahlen ",
"Cluster.Routing.Zuweisung.ALLGESTELLTE_REBALE ":" Immer " ,
"Cluster.Routing.Zuweisung.cluster_concurrent_rebalance ":" 2 "

Das Folgende ist der Befehl curl:

curl -xput "http: // localhost: 9200/_cluster/Einstellungen" -h 'content -type: application/json' -d '"Persistent": "Cluster.Routing.Wiedereinlebnis.Aktivieren ":" Vorwahlen "," Cluster.Routing.Zuweisung.ALLGESTELLTE_REBALE ":" Immer "," Cluster.Routing.Zuweisung.cluster_concurrent_rebalance ":" 2 " '

Dieser Befehl sollte eine Antwort zurückgeben, da das JSON -Objekt die aktualisierten Einstellungen anerkennt.


"Anerkannt": wahr,
"hartnäckig" :
"Cluster":
"Routing":
"Ausgleich":
"Aktivieren": "Vorwahlen"
,
"Allokation":
"Allow_Rebalance": "Immer",
"cluster_concurrent_rebalance": "2"



,
"transient":

Manuelles Indexausgleich

Sie können auch einen Shard für einen bestimmten Index manuell ausbalancieren. Ich würde diese Option nicht empfehlen, da die Elasticsearch -Standardausgleichungsoptionen sehr effizient sind.

Sollte die Notwendigkeit, manuelles Ausgleich auszuführen, können Sie jedoch die folgende Anfrage verwenden:


"Anerkannt": wahr,
"hartnäckig" :
"Cluster":
"Routing":
"Ausgleich":
"Aktivieren": "Vorwahlen"
,
"Allokation":
"Allow_Rebalance": "Immer",
"cluster_concurrent_rebalance": "2"



,
"transient":

Der Befehl curl lautet:

curl -xpost "http: // localhost: 9200/_cluster/reroute" -h 'content -type: application/json' -d '"Befehle": ["move": "index": "kibana_sample_data_flights", "Shard": 0, "von_node": "Instance-0000000001", "to_node": "Instance-0000000002"] '

NOTIZ: Denken Sie daran, dass Elasticsearch die Scherben automatisch bewegen kann, um die bestmögliche Wiederausgleiche zu gewährleisten.

Abschluss

Dieser Leitfaden führte Sie durch das Aktualisieren und Ändern der Einstellungen für einen Elasticsearch -Cluster, um das automatische Shard -Rebalancing zu ermöglichen. Der Artikel umfasste auch das manuelle Neuausgleich, wenn Sie ihn benötigen.