elasticsearch:org.elasticsearch.client.transport.NoNodeAvailableException:没有可用的节点

时间:2014-07-31 07:44:32

标签: java elasticsearch upgrade spring-data

我已将elasticsearch-0.90.7的弹性搜索版本更新为elasticsearch-1.3.1,应用程序在elasticsearch-0.90.7中工作正常,但在elasticsearch-1.3.1中获得以下异常:

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)

我正在使用java客户端org.springframework.data:spring-data-elasticsearch:1.0.0.M1与弹性搜索进行交互,例如:

ElasticsearchTemplate.bulkIndex(index)

如何解决此问题?

1 个答案:

答案 0 :(得分:2)

  

TL; DR   同时更新spring-data-elasticsearch库

不同的主要Elasticsearch版本都有incompatible transport protocols。这样做是为了避免群集中的版本不匹配。您已将ES升级到1.3.1,但是您的弹簧数据库uses旧版本的客户端因此无法在群集中找到其他节点 - 它不知道如何正确地进行通信。

请参阅您的库文档,找到与ES 1.3.1一起使用的必要版本并使用它。