NoNodeAvailableException : None of the configured nodes are available

16,395

Solution 1

As discussed in comments,

If you are using a cluster name other than elasticsearch, then you need to update the same in settings.

Settings settings = Settings.builder()
        .put("cluster.name", "myClusterName").build();

Solution 2

I was facing the same issue, my cluster name & everything were correct, but my elastic cluster was using X-Pack Security. And it was only because of that.

Here is solutions - https://www.elastic.co/guide/en/x-pack/current/java-clients.html

Share:
16,395
Alanight
Author by

Alanight

Updated on June 18, 2022

Comments

  • Alanight
    Alanight over 1 year

    I'm trying to search from Elastic Search within my Java Web Service, here's how I use now :

        Client client = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("192.168.10.150"), 9200));
        SearchResponse searchResponse = client.prepareSearch().execute().actionGet();
    

    The 1st line could work without an error, but when it goes to the 2nd line, the exception down below will occur :

    NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{TskPSVeBRR6CvCzP9EVhkQ}{192.168.10.150}{192.168.10.150:9200}]]

    No matter I use 9200 or 9300 to set the port, the results are the same.

    Also, I've tried to search from my .Net program using NEST, and it run just fine. Here's how I tried :

        var node = new Uri("http://192.168.10.150:9200");
        var settings = new ConnectionSettings(node).DefaultIndex("iod-2017.03.08.*");
        _EsClient = new ElasticClient(settings);
        var index = String.Format("iod-{0}.{1:00}.{2:00}.*", item.TriggerTime.Year, item.TriggerTime.Month, item.TriggerTime.Day);
        var uniqueId = item.UniqueId.ToString();
        var result = _EsClient.Search<logs>(s => s.Index(index).Query(q => q.Match(t => t.Field(l => l.id).Query(uniqueId))));
    

    Did I do anything(Firewall, version of library, method to call the API, etc) wrong with my Java program? My current Java version is 1.8.0.121, the version of Elastic Search and Transport Client are both 5.2. Thanks!