1

I have update elasticsearch version from elasticsearch-0.90.7 to elasticsearch-1.3.1 and application was working fine in elasticsearch-0.90.7 but in elasticsearch-1.3.1 getting below exception:

2014-07-31/12:49:22.276 [SimpleAsyncTaskExecutor-4]  ERROR step.AbstractStep - Encountered an error executing the step
org.elasticsearch.client.transport.NoNodeAvailableException: No node available
at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:219)
at org.elasticsearch.client.transport.support.InternalTransportClient.execute(InternalTransportClient.java:106)
at org.elasticsearch.client.support.AbstractClient.bulk(AbstractClient.java:149)
at org.elasticsearch.client.transport.TransportClient.bulk(TransportClient.java:354)
at org.elasticsearch.action.bulk.BulkRequestBuilder.doExecute(BulkRequestBuilder.java:165)
at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:85)
at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:59)
at com.verisign.rzuingest.batch.RzuFilesIngestionTasklet.execute(Ingestion.groovy:75)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.lang.Thread.run(Thread.java:745)

I am using java client org.springframework.data:spring-data-elasticsearch:1.0.0.M1 to interact with elastic search some thing like:

ElasticsearchTemplate.bulkIndex(index)

How to fix this issue?

Konstantin V. Salikhov
  • 4,554
  • 2
  • 35
  • 48
user3339614
  • 11
  • 1
  • 3
  • has your load increased since you last tested? This error may also come if your ES cluster is under stress during indexing. – Ravi Bhatt Jul 31 '14 at 21:08

1 Answers1

2

TL;DR Update spring-data-elasticsearch library as well

Different major Elasticsearch versions have incompatible transport protocols. It was done to avoid version mismatches in a cluster. You have upgraded your ES to 1.3.1, but your spring data library uses old version of client so it simply can't find other nodes in a cluster - it doesn't know how to communicate them properly.

Just refer to your library documentation to find necessary version to use with ES 1.3.1 and use it.

Konstantin V. Salikhov
  • 4,554
  • 2
  • 35
  • 48
  • 1
    Exactly ! 1.0.0.M1 is on 0.90.x version of elasticsearch, try using latest version 1.1.0.M1. – Mohsin Husen Jul 31 '14 at 11:19
  • 1.0.2.RELEASE 1.1.0.M1 1.0.1.RELEASE 1.0.0.RELEASE above spring-data-elasticsearch jar version tried getting same issue.... please can suggest exact supported version for elasticserch1.3.1 version 1.0.0.RC1 1.0.0.M2 1.0.0.M1 – user3339614 Aug 01 '14 at 03:04
  • AFAIK latest 1.0.2.RELEASE supports ES version 1.1.1, so you probably need to wait when newer version of your library arrives – Konstantin V. Salikhov Aug 01 '14 at 05:59
  • Thanks Konstantin V. Salikhov and Mohsin Husen for your answers…. ElasticSearch-1.1.0 and compile 'org.springframework.data:spring-data-elasticsearch:1.0.0.RC1' Solved my problem...:) – user3339614 Aug 01 '14 at 11:57