2015-02-12 6 views
6

Mam serwer z elastycznym wyszukiwaniem i kibana. Dodałem drugi węzeł, aby utworzyć klaster, ale chcę, aby drugi węzeł replikował dane z węzła głównego.Elasticsearch Cluster - Brak znanego węzła głównego, planowanie ponownej próby

podstawie ograniczonej dokumentacji, jak to zrobić, używam do wydania na sekundę z następujący błąd

[DEBUG][action.admin.indices.get ] [Match] no known master node, scheduling a retry 

nie jestem w stanie określić najlepszą konfigurację dla oba serwery do osiągnięcia tego celu, ale to jest to, co ja zrobili do tej pory:

Mistrza węzła config:

cluster.name: elasticsearch 
node.master: true 
path.data: /local00/elasticsearch/ 
path.work: /local00/el_temp/ 
network.host: 0.0.0.0 
http.port: 9200 
script.disable_dynamic: true 

Node 2

cluster.name: elasticsearch 
node.master: false 
node.data: true 
index.number_of_shards: 5 
index.number_of_replicas: 1 
path.data: /local00/elasticsearch/ 
path.work: /local00/el_temp/ 
network.host: 0.0.0.0 
http.port: 9200 
script.disable_dynamic: true 

Zakładam, że brakuje mi gdzieś dodatkowej konfiguracji. Każda pomoc będzie doceniana.

Odpowiedz

6

Got to praca z następującymi zmianami tu odpowiedzi How to set up ES cluster?:

Node 1:

cluster.name: mycluster 
node.name: "node1" 
node.master: true 
node.data: true 
discovery.zen.ping.multicast.enabled: false 
discovery.zen.ping.unicast.hosts: ["node1.example.com"] 

Węzeł 2:

cluster.name: mycluster 
node.name: "node2" 
node.master: false 
node.data: true 
discovery.zen.ping.multicast.enabled: false 
discovery.zen.ping.unicast.hosts: ["node1.example.com"] 
1

Jeśli próbujesz podłączyć dodatkowy węzeł, aby istniała już ES klaster, upewnij się, że ten węzeł ma również te same wtyczki ES, co inne węzły. Jeśli nie - węzeł mogę być w pełni podłączone (inne węzły mogą pokazać jak podłączyć ale http-polecenia cant być uruchomiony na nim) do klastra ES z błędu jak:

[2016-07-21 11:56:59,564][DEBUG][action.admin.cluster.health] [dev-marvel1] no known master node, scheduling a retry 
[2016-07-21 11:57:05,313][INFO ][rest.suppressed   ] /_cluster/health Params: {pretty=true} 
MasterNotDiscoveredException[waited for [30s]] 
     at org.elasticsearch.action.support.master.TransportMasterNodeAction$4.onTimeout(TransportMasterNodeAction.java:154) 
     at org.elasticsearch.cluster.ClusterStateObserver$ObserverClusterStateListener.onTimeout(ClusterStateObserver.java:239) 
     at org.elasticsearch.cluster.service.InternalClusterService$NotifyTimeout.run(InternalClusterService.java:574) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:745) 

w moim przypadku problem był z wtyczki licencyjnej. Po usunięciu wszystko stało się w porządku.

+0

Rozwiązało to problem dla mnie! Moje istniejące węzły miały cudowne wtyczki, których nowy węzeł nie miał. Nowy węzeł pojawił się na liście węzłów podczas przeglądania kopf lub nagłówka na istniejącym węźle, ale pozostałe stare węzły w klastrze nie były wyświetlane podczas przeglądania tych wtyczek dla nowego węzła, a nowy węzeł nie otrzymałby żadnych odłamków. Problem polega na tym, że mogę dodać wtyczki do nowego węzła, aby go naprawić, ale nie widzę sposobu na usunięcie ich z całego klastra bez ponownego uruchamiania całego klastra. Każdy węzeł, z którego je usunę, nie uruchomi się poprawnie, więc nie mogę ich usunąć ... – redstonemercury