2013-04-03 11 views
5

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.

+1

domanda stupida, ma si può utilizzare la scoperta unicast più esplicito? – mconlin

risposta