2013-04-03 18 views
5

Próbuję użyć ElasticSearch dla aplikacji, którą buduję, i hostuję ją na serwerach Rackspace. Jednak funkcja auto-discovery nie działa. Myślałem, że to dlatego, że auto-discovery używa rozgłaszania i rozsyłania grupowego, aby znaleźć inne węzły z pasującą nazwą klastra. Znalazłem to article mówiąc, że Rackspace obsługuje teraz multicast i broadcast z ich nową funkcją Cloud Networks. Następnie postępując zgodnie z instrukcjami artykułu utworzyłem sieć i dodałem tę sieć do obu serwerów, na których były uruchomione węzły. Następnie próbowałem ponownym ElasticSearch na obu węzłach, ale nie znaleźliśmy siebie, a każdy zadeklarowało jako „master” (tu jest wyjście z kłody):elasticsearch auto-discovery rackspace nie działa

[2013-04-03 22:14:03,516][INFO ][node      ] [Nemesis] {0.20.6}[2752]: initializing ... 
[2013-04-03 22:14:03,530][INFO ][plugins     ] [Nemesis] loaded [], sites [] 
[2013-04-03 22:14:07,873][INFO ][node      ] [Nemesis] {0.20.6}[2752]: initialized 
[2013-04-03 22:14:07,873][INFO ][node      ] [Nemesis] {0.20.6}[2752]: starting ... 
[2013-04-03 22:14:08,052][INFO ][transport    ] [Nemesis] bound_address {inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {inet[/166.78.177.149:9300]} 
[2013-04-03 22:14:11,117][INFO ][cluster.service   ] [Nemesis] new_master [Nemesis][3ih_VZsNQem5W4csDk-Ntg][inet[/166.78.177.149:9300]], reason: zen-disco-join (elected_as_master) 
[2013-04-03 22:14:11,168][INFO ][discovery    ] [Nemesis] elasticsearch/3ih_VZsNQem5W4csDk-Ntg 
[2013-04-03 22:14:11,202][INFO ][http      ] [Nemesis] bound_address {inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {inet[/166.78.177.149:9200]} 
[2013-04-03 22:14:11,202][INFO ][node      ] [Nemesis] {0.20.6}[2752]: started 
[2013-04-03 22:14:11,275][INFO ][gateway     ] [Nemesis] recovered [0] indices into cluster_state 

dziennika drugiej węzła:

[2013-04-03 22:13:54,538][INFO ][node      ] [Jaguar] {0.20.6}[3364]: initializing ... 
[2013-04-03 22:13:54,546][INFO ][plugins     ] [Jaguar] loaded [], sites [] 
[2013-04-03 22:13:58,825][INFO ][node      ] [Jaguar] {0.20.6}[3364]: initialized 
[2013-04-03 22:13:58,826][INFO ][node      ] [Jaguar] {0.20.6}[3364]: starting ... 
[2013-04-03 22:13:58,977][INFO ][transport    ] [Jaguar] bound_address {inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {inet[/166.78.63.101:9300]} 
[2013-04-03 22:14:02,041][INFO ][cluster.service   ] [Jaguar] new_master [Jaguar][WXAO9WOoQDuYQo7Z2GeAOw][inet[/166.78.63.101:9300]], reason: zen-disco-join (elected_as_master) 
[2013-04-03 22:14:02,094][INFO ][discovery    ] [Jaguar] elasticsearch/WXAO9WOoQDuYQo7Z2GeAOw 
[2013-04-03 22:14:02,129][INFO ][http      ] [Jaguar] bound_address {inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {inet[/166.78.63.101:9200]} 
[2013-04-03 22:14:02,129][INFO ][node      ] [Jaguar] {0.20.6}[3364]: started 
[2013-04-03 22:14:02,211][INFO ][gateway     ] [Jaguar] recovered [0] indices into cluster_state 

Czy dodawanie sieci nie jest wystarczające (Rackspace dał mi również adres IP dla tej sieci)? Czy muszę w jakiś sposób określić w pliku conf, aby sprawdzić, czy sieć używa multicast do znalezienia innych węzłów?

Znalazłem także tę article, która oferowała inne podejście. Zgodnie z zaleceniami artykułu kładę to na /config/elasticsearch.yml:

cloud: 
    account: account # 
    key: account key 
    compute: 
     type: rackspace 
discovery: 
    type: cloud 

jednak wtedy, gdy próbowałem zrestartować ElasticSearch mam to:

Stopping ElasticSearch... 
Stopped ElasticSearch. 
Starting ElasticSearch... 
Waiting for ElasticSearch....... 
WARNING: ElasticSearch may have failed to start. 

I to nie powiedzie się. Sprawdziłem w pliku dziennika dla żadnych błędów, ale to było wszystko, co było tam:

[2013-04-03 22:31:00,788][INFO ][node      ] [Chamber] {0.20.6}[4354]: initializing ... 
[2013-04-03 22:31:00,797][INFO ][plugins     ] [Chamber] loaded [], sites [] 

I zatrzymał się bez błędów i bez kontynuacji.

Czy ktoś pomyślnie uzyskał ElasticSearch do pracy w chmurze Rackspace? Wiem, że opcja emisji pojedynczej jest również dostępna, ale wolałbym nie określać osobno każdego adresu IP, ponieważ chciałbym, aby później łatwo było dodać inne węzły. Dzięki!

UPDATE

nie rozwiązali ten problem jeszcze, ale po poszukiwaniach znalazłem ten post, który mówi „starych” chmura plugin został wycofany i zastąpiony tylko wtyczki Ec2 na chmurze Amazona, która wyjaśnia, dlaczego zmiany wprowadzone w pliku konfiguracyjnym nie działają.

+1

głupie pytanie, ale można skorzystać z bardziej wyraźny odkrycie unicast? – mconlin

Odpowiedz

Powiązane problemy