【问题标题】:elasticserch: org.elasticsearch.client.transport.NoNodeAvailableException: No node availableelasticsearch:org.elasticsearch.client.transport.NoNodeAvailableException:没有可用的节点
【发布时间】:2014-09-23 01:45:27
【问题描述】:

我已将 elasticsearch 版本从 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)

如何解决这个问题?

【问题讨论】:

  • 自上次测试以来,您的负载增加了吗?如果您的 ES 集群在索引期间处于压力之下,也可能会出现此错误。

标签: java elasticsearch upgrade spring-data


【解决方案1】:

TL;DR 更新 spring-data-elasticsearch 库

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

只需参考您的库文档以找到与 ES 1.3.1 一起使用的必要版本并使用它。

【讨论】:

  • 没错! 1.0.0.M1 在 0.90.x 版本的 elasticsearch 上,尝试使用最新版本 1.1.0.M1。
  • 1.0.2.RELEASE 1.1.0.M1 1.0.1.RELEASE 1.0.0.RELEASE 以上 spring-data-elasticsearch jar 版本尝试遇到同样的问题....请建议确切支持的版本对于 elasticserch1.3.1 版本 1.0.0.RC1 1.0.0.M2 1.0.0.M1
  • AFAIK latest 1.0.2.RELEASE 支持 ES 版本 1.1.1,所以你可能需要等待更新版本的库到来
  • 感谢 Konstantin V. Salikhov 和 Mohsin Husen 的回答……。 ElasticSearch-1.1.0 并编译 'org.springframework.data:spring-data-elasticsearch:1.0.0.RC1' 解决了我的问题...:)
猜你喜欢
  • 2019-07-09
  • 2014-06-24
  • 2018-04-06
  • 1970-01-01
  • 2019-07-16
  • 1970-01-01
  • 1970-01-01
  • 2015-03-08
  • 2018-10-16
相关资源
最近更新 更多