Я пытаюсь получить 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