2015-11-30 3 views
0

Я пытаюсь получить Netflix open source solution Edda для работы с Elasticsearch. Я знаю, что я правильно установил Edda, потому что я могу успешно работать с MongoDB в качестве бэкэнд. Я бы предпочел использовать Elasticsearch, чтобы я мог использовать преимущества Kibana, а не писать свой собственный интерфейс. Поэтому я запускаю Edda и Elasticsearch на том же сервере в AWS на данный момент (просто пытаюсь заставить его работать). Elasticsearch находится в рабочем состоянии:Elasticsearch & NetFlix Edda - NoNodeAvailableException: нет доступных узлов

{ 
    "name" : "Arsenic", 
    "cluster_name" : "elasticsearch", 
    "version" : { 
    "number" : "2.1.0", 
    "build_hash" : "72cd1f1a3eee09505e036106146dc1949dc5dc87", 
    "build_timestamp" : "2015-11-18T22:40:03Z", 
    "build_snapshot" : false, 
    "lucene_version" : "5.3.1" 
    }, 
    "tagline" : "You Know, for Search" 
} 

И чтобы показать, что слушает:

netstat -tulpn | grep java 
tcp  0  0 ::ffff:<myip>:9300 :::*      LISTEN  2270/java 
tcp  0  0 ::ffff:<myip>:9200 :::*      LISTEN  2270/java 

Моя версия Java Я обновил с 1.7 до 1.8, как я считаю, что версия Java для Elasticsearch и что работает на сервере должны совпадение. Я не вижу причин, почему 1,8 будет вызывать вопрос:

java -version 
openjdk version "1.8.0_65" 
OpenJDK Runtime Environment (build 1.8.0_65-b17) 
OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode) 

Вот мои свойства Эдда файл:

cat /home/ec2-user/edda/src/main/resources/edda.properties | grep elasticsearch 
edda.datastore.current.class=com.netflix.edda.elasticsearch.ElasticSearchDatastore 
edda.elector.class=com.netflix.edda.elasticsearch.ElasticSearchElector 
edda.elasticsearch.cluster=elasticsearch 
edda.elasticsearch.address=<myip>:9300 
edda.elasticsearch.shards=5 
edda.elasticsearch.replicas=0 
# http://www.elasticsearch.org/guide/reference/api/index_/ 
edda.elasticsearch.writeConsistency=quorum 
edda.elasticsearch.replicationType=async 
edda.elasticsearch.scanBatchSize=1000 
edda.elasticsearch.scanCursorDuration=60000 
edda.elasticsearch.bulkBatchSize=0 

И в моем elasticsearch.yml файле:

network.host: <myip> 

Я не указывал clustername так, что он предполагает дефолтный «эластичный».

Так что, когда я бегу Эдда опрашивать AWS и заполнить elasticsearch с данными он находит я получаю эту ошибку:

[Collection aws.hostedZones] init: caught org.elasticsearch.client.transport.NoNodeAvailableException: No node available 
     at com.netflix.edda.Collection$$anonfun$init$1.apply$mcV$sp(Collection.scala:471) 
     at com.netflix.edda.Utils$$anon$1.act(Utils.scala:169) 
     at scala.actors.Reactor$$anonfun$dostart$1.apply(Reactor.scala:224) 
     at scala.actors.Reactor$$anonfun$dostart$1.apply(Reactor.scala:224) 
     at scala.actors.ReactorTask.run(ReactorTask.scala:33) 
     at scala.actors.ReactorTask.compute(ReactorTask.scala:63) 
     at scala.concurrent.forkjoin.RecursiveAction.exec(RecursiveAction.java:160) 
     at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) 
     at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) 
     at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) 
     at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) 

Очевидно, что он не может подключиться к elasticsearch кластера пока имя кластера правильно, это прослушивая правильный порт и ip-адрес, насколько я могу судить, и я не думаю, что есть проблема с версией java.

Мне не хватает чего-то, возможно, очень простого.

Заранее благодарим за вашу помощь.

С уважением Neilos

ответ

0

Я понял это, клиент Java используется в Эдде настроен на использование версии 0.90.0 из elasticsearch, который установлен в build.gradle, если установить эту версию Elasticsearch так ли работает. Очевидно, что это очень старая версия Elasticsearch, которую вы вряд ли захотите использовать. Если вы измените номер версии в этом файле, он не сработает, когда попытается скомпилировать из-за неработающих путей (отсутствующих сборок). Я взвешиваю, стоит ли пытаться решить эти проблемы сборки, чтобы заставить его работать с последней версией Elasticsearch или использовать MongoDB, который работает без каких-либо изменений кода, но будет обеспечивать только функциональность REST Api. По крайней мере проблема решена.

Смежные вопросы