ElasticSearch (java) — проблема с ненастроенными узлами

Я пытаюсь в самом простом случае подключиться к моему кластеру ES, но кажется, что хост, который я регистрирую, не регистрируется. Это код, который я запускаю:

//Create the client
Client client = new TransportClient(ImmutableSettings.builder()
    .put("cluster.name", "MyCluster")
    .put("client.transport.sniff","true").build())
    .addTransportAddresses(
        new InetSocketTransportAddress("host1", 9300),
        new InetSocketTransportAddress("host2", 9300));

// Try to make a call
SearchRequest sr = new SearchRequest().indices("MyIndex");
ActionFuture<SearchResponse> search = client.search(sr);
SearchResponse actionGet = search.actionGet(); // <-- Exception
System.out.println(actionGet.toString());

client.close();

Это исключение, которое я получаю:

Исключение в потоке "main" org.elasticsearch.client.transport.NoNodeAvailableException:
Ни один из настроенных узлов недоступен: []

Похоже, что нет подключенных узлов, что я упускаю?

ПРИМЕЧАНИЕ. Я использую клиент эластичного поиска с gradle:
compile 'org.elasticsearch:elasticsearch:1.7.5'


person Roee Gavirel    schedule 26.04.2016    source источник
comment
Ваш кластер работает нормально? Версии вашего клиента и сервера совпадают/совместимы?   -  person alpert    schedule 26.04.2016
comment
Кластер отлично работает с вызовами REST. И я думаю у меня такие же версии, как проверить версию на сервере?   -  person Roee Gavirel    schedule 26.04.2016
comment
Просто введите curl -XGET 'http://host:9200. Также проверьте имя кластера.   -  person alpert    schedule 26.04.2016
comment
Вы правы, это была ошибка версии. Спасибо.   -  person Roee Gavirel    schedule 26.04.2016
comment
@Gavirel Я также отвечаю на вопрос   -  person alpert    schedule 26.04.2016


Ответы (1)


Для этого есть несколько возможных причин:

  • Версии клиента и сервера могут отличаться
  • Имя кластера может быть другим
  • При доступе к хосту и порту может возникнуть проблема с сетью.
person alpert    schedule 26.04.2016