ElasticSearch Server-Ermittlungskonfiguration

8

Ich habe den ElasticSearch-Server installiert, auf dem ich laufe:

%Vor%

Wie kann ich den Java-Client für die Verbindung mit diesem Server konfigurieren? Ich habe nur:

%Vor%

Aber nach dem Versuch, eine Verbindung herzustellen, empfange ich:

%Vor%

Wenn ich den Java-Client wie folgt konfiguriere:

%Vor%

Ich erhalte folgende Protokolle:

%Vor%

Wie ich verstanden habe, bedeutet dies, dass dieser neue Knoten (der Client-Knoten sein soll) sich selbst zu einem neuen Master-Knoten gemacht hat. Und ich logge nicht davon, dass es gefunden wurde und verbinde mich mit irgendeinem anderen Knoten.

Server und Client werden auf demselben Computer gestartet. 192.168.1.106:9200 sind vom Browser zugänglich.

Und ich kann keine gute Dokumentation über die Discovery-Konfiguration finden. Wo kann ich mehr über ElasticSearch-Konfigurationen lesen? Und wie konfiguriert man den Java-Client?

    
Igor Artamonov 09.11.2011, 10:23
quelle

6 Antworten

2

Es gab dasselbe Problem, bei dem die Knoten beim Neustart des Knotens keinen Master auswählen konnten.

Das Problem liegt in der Kommunikation von Knoten untereinander.

Bitte stellen Sie in Ihren elastischen Suchprotokollen sicher, ob beim Neustart des Knotens

steht %Vor%

Dies bedeutet, dass der aktuelle Knoten seine IP-Adresse nicht an andere Knoten publiziert und daher die Knoten diesen Knoten nicht erkennen, obwohl die Knoten-IP möglicherweise in discovery.zen.ping.unicast.hosts

Lösung      Nehmen Sie die folgenden Änderungen in elasticsearch.yml vor. Fügen Sie

hinzu %Vor%

Dies bedeutet, dass Ihr Knoten jetzt erkennbar ist. Der zweite Schritt, um den Cluster auffindbar zu machen, besteht darin, die IP-Adresse des Knotens in den Unicast-Host-Listen aller Master-Knoten hinzuzufügen, sodass der Knoten bei jedem neuen Master für den neuen Master erkennbar ist. p> %Vor%     

arpiagar 29.04.2016, 09:04
quelle
13

Der wahrscheinlichste Grund für diesen Fehler ist eine Firewall auf Ihrem Computer, die den Multicast-Erkennungsdatenverkehr auf Port 54328 blockiert. Sowohl der Client als auch der Master senden während der ersten Erkennung auf diesem Port und hören nicht voneinander. Wenn Sie daher node.client = true angeben, kann der Client-Knoten (der kein Master sein kann) mit MasterNotDiscoveredException fehlschlagen, und der Knoten ohne Daten wählt sich selbst als Master aus.

    
imotov 11.11.2011 03:49
quelle
9

Ich stieß auf das gleiche Problem und durch die Verwendung von IP-Nummern in der Konfigurationsdatei löste es für mich.

in /config/elasticsearch.yml

Entfernen Sie die Kommentarzeichen und ändern Sie die Einstellung network.host zu:

%Vor%

Sie können dies auch in ifconfig in Ihre Maschinen-IP-Nummer ändern.

    
Yada 14.12.2011 21:22
quelle
5

Ich hatte das gleiche Problem. Schließlich stellte sich heraus, dass ich ein Firewall-Problem hatte, bei dem meine Firewall (auf Ubuntu) die Ports von ElasticSearch blockierte. Ich benutze die Standardfirewall auf Ubuntu, ufw .

Also, um die Ports zu öffnen, habe ich diese Befehle auf dem Terminal ausgeführt:

%Vor%

Mein Cluster wird lokal auf 9200 ausgeführt und alle meine Clients öffnen auf 9300+. Also habe ich gerade den Bereich 9200-9400 für sie geöffnet. 54328 ist für die Multicast-Übertragung.

Nur zur Vollständigkeit: Ich habe auch den TransportClient verwendet, der funktioniert, aber ich habe meinen localhost fest an die Adresse angehängt, an der der TransportClient arbeiten wird. Keine gute Sache für den Produktionscode :-)

    
gjoris 23.07.2012 15:13
quelle
1

So etwas sollte funktionieren:

%Vor%

Was mich beschmutzt hat, war, dass ich ursprünglich versucht habe, den Client mit 9200 zu verbinden, nicht mit 9300. Hinweise zu den obigen Einstellungen finden Sie unter Ссылка

    
digitalsanctum 09.11.2011 20:27
quelle
1

Konfigurieren Sie den Netzwerkhost für localhost:

network.host: 127.0.0.1

    
Prabhakar 22.06.2015 14:47
quelle

Tags und Links