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ą.
głupie pytanie, ale można skorzystać z bardziej wyraźny odkrycie unicast? – mconlin