Ich. Ich selbst und der Elastic Search Cluster

Post date: May 18, 2013 9:50:13 AM

Die voreingestellte Konfiguration des Elastic Search Clusters erlaubt das doppelte Starten derselben Instanz in einem Elastic Search Cluster. Das kann zu der unangnehmen Situation führen, dass der Cluster Health rot wird. Nehmen wir einmal an, dass wird einen Cluster mit drei verschiedenen Instanzen (Franz Kafka, Albert Einstein und Steve Jobs) konfiguriert haben.

Aus Versehen starten wir die Franz Kafka Instanz zweimal, erstellen einen Index und fügen einige Dokumente zu diesem Index hinzu. Die Replika-Konfiguration bleibt unverändert mit den Werten: eine Replika und fünf Shards. Nach einer Weile fahren wir eine Franz Kafka Instanz herunter und starten den ganzen Cluster mit den drei unterschiedlichen Instanzen wieder. Die Instanzen verwenden drei verschiedenen lokalen Verzeichnisse mit einer Installation von Elastic Search (es handelt um einen lokalen Cluster mit drei Instanzen).

Die Überraschung die ensteht ist dass der Cluster Health jetzt rot wird weil die Shards die vorher erstellt wurden können jetzt nicht mehr richtig verwaltet werden. Das Problem kann durch das Löschen von dem gesamten "data" Verzeichnis gelöst werden. Der Preis zu bezahlen ist in diesem Fall ziemlich hoch weil die erstellten Indizes zusammen mit den erzeugten Daten verloren gehen.

Um einen lokalen Elastic Search Cluster fehlerfrei von diesen Arten von Problemen zu laufen muss man eine Einstellung unter config/elasticsearch.yml ändern und nämlich den "node.max_local_storage_nodes" Parameter.