Sto cercando di utilizzare ElasticSearch per un'applicazione che sto creando e lo sto ospitando sui server Rackspace. Tuttavia, la funzione auto-discovery
non funziona. Ho pensato che fosse perché auto-discovery
utilizza broadcast e multicast per trovare gli altri nodi con il nome del cluster corrispondente. Ho trovato questo article dicendo che Rackspace ora supporta multicast e broadcast con la loro nuova funzionalità Cloud Networks. Quindi, seguendo le istruzioni dell'articolo, ho creato una rete e ho aggiunto quella rete a entrambi i server su cui erano in esecuzione i nodi. Allora ho provato a riavviare ElasticSearch
su entrambi i nodi, ma non hanno trovato l'un l'altro, e ciascuno si sono dichiarati come "master" (ecco l'output dai log):rackspace di auto-discovery elasticsearch non funzionante
[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
registro L'altro nodo:
[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
L'aggiunta della rete non è sufficiente (Rackspace mi ha anche fornito un IP per questa rete)? Devo in qualche modo specificare nel file conf per controllare quella rete quando si usa il multicast per trovare altri nodi?
Ho anche trovato questo article che ha offerto un approccio diverso. Secondo le istruzioni del articolo ho messo questo in /config/elasticsearch.yml
:
cloud:
account: account #
key: account key
compute:
type: rackspace
discovery:
type: cloud
Tuttavia, poi quando ho provato a riavviare ElasticSearch
ho ottenuto questo:
Stopping ElasticSearch...
Stopped ElasticSearch.
Starting ElasticSearch...
Waiting for ElasticSearch.......
WARNING: ElasticSearch may have failed to start.
e lo ha fatto non riescono a iniziare. Ho controllato nel file di log per eventuali errori, ma questo era tutto quello che c'era:
[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 []
Ed è fermato lì senza errori e senza continuare.
Qualcuno ha ottenuto con successo ElasticSearch
per funzionare nella nuvola di Rackspace prima? So che è disponibile anche l'opzione unicast, ma preferirei non dover specificare ogni indirizzo IP singolarmente, poiché vorrei che fosse facile aggiungere altri nodi in un secondo momento. Grazie!
UPDATE
non ho ancora risolto il problema, ma dopo qualche ricerca ho trovato questo post che dice il plugin "vecchio" nuvola è stato interrotto e sostituito con una semplice Ec2 plug-in per il cloud di Amazon, che spiega perché le modifiche apportate al file di configurazione non funzionano.
domanda stupida, ma si può utilizzare la scoperta unicast più esplicito? – mconlin