Elasticsearch NoNodeAvailableException问题 [英] Elasticsearch NoNodeAvailableException issue

查看:1113
本文介绍了Elasticsearch NoNodeAvailableException问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们的弹簧引导应用程序是使用传输客户端[使用ElasticsearchRepository]在ES群集中​​索引数据。问题是,在一些索引调用索引之后,只是挂起了DAO上的SAVE方法,只是挂起,过了一段时间后,它给了我们 Nonodefoundexception



这是我们的堆栈




  • ES 1.7.3

  • :1.3.2.RELEASE

  • Java:1.8

  • spring-boot-starter-data-elasticsearch:1.3.2.RELEASE



使用运输客户端:



ES设置: strong>
- 有三个节点。所有的都是客户端和主数据和数据



环境:
我们的开发人员在AWS中,我们在Dev甚至没有看到任何问题虽然所有的ES设置是一样的。

  ** org.elasticsearch.client.transport.NoNodeAvailableException:没有配置的节点可用:[[NodeName-apsrp5470] [tzlZ3u8aTK23YFr14R085g] [apsrp5470] [inet [/10.222.146.127:9300]] {master = true},[NodeName-apsrp5434] [K4r0wujuThqwj1oTU9lEHg] [apsrp5434] [inet [/10.222.146.132:9300]] {master = true} ,[NodeName-apsrp5435] [YBPk8E4TR6u7LFLxfaVWaw] [apsrp5435] [inet [/10.222.146.139:9300]] {master = true}] 
在org.elasticsearch.client.transport.TransportClientNodesService $ RetryListener.onFailure(TransportClientNodesService。 java:242)〜[elasticsearch-1.5.2.jar!/:na]
在org.elasticsearch.action.TransportActionNodeProxy $ 1.handleException(TransportActionNodeProxy.java:78)〜[elasticsearch-1.5.2.jar! /:na]
在org.elasticsearch.transport.TransportService $ Adapter $ 3.run(TransportService.java:468)〜[elasticsearch-1.5.2.jar!/:na]
在java.util .concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[na:1.8.0_60]
在java.util.concurrent.Threa dPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)[na:1.8.0_60]
在java.lang.Thread.run(Thread.java:745)[na:1.8.0_60]
导致通过:org.elasticsearch.transport.NodeDisconnectedException:[NodeName-apsrp5470] [inet [/10.222.146.127:9300]] [indices:data / write / index] disconnect **
/ pre>

线程转储: -

  java.lang.Thread 。状态:WAITING(停车)
at sun.misc.Unsafe.park(Native Method)
- 停车等待<0x00000007bd824f48> (一个org.elasticsearch.common.util.concurrent.BaseFuture $ Sync)
在java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
在java.util.concurrent。 locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
在java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:997)
在java.util.concurrent.locks.AbstractQueuedSynchronizer。获取SharedInterruptibly(AbstractQueuedSynchronizer.java:1304)
在org.elasticsearch.common.util.concurrent.BaseFuture $ Sync.get(BaseFuture.java:279)
在org.elasticsearch.common.util.concurrent。 BaseFuture.get(BaseFuture.java:118)
在org.elasticsearch.action.support.AdapterActionFuture.actionGet(AdapterActionFuture.java:45)
在org.springframework.data.elasticsearch.core.ElasticsearchTemplate。 index(ElasticsearchTemplate.java:519)


解决方案

选项是尝试使用另一个lib如果ES不能被降级,那么可怕。


Our spring boot app is indexing data in ES cluster using transport client [using ElasticsearchRepository ]. Issue is that after some index call indexing just hangs the.the SAVE method on DAO just hangs and After some time it gives us "Nonodefoundexception"

Here’s our stack

  • ES 1.7.3
  • Spring Boot: 1.3.2.RELEASE
  • Java: 1.8
  • spring-boot-starter-data-elasticsearch : 1.3.2.RELEASE

Using transport client:

ES setup: - there are three nodes. all are client and master and data

Environment: Our dev is in AWS and we do not see any issue in Dev even though all ES setup is same.

**org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes were available: [[NodeName-apsrp5470][TzlZ3u8aTK23YFr14R085g][apsrp5470][inet[/10.222.146.127:9300]]{master=true}, [NodeName-apsrp5434][K4r0wujuThqwj1oTU9lEHg][apsrp5434][inet[/10.222.146.132:9300]]{master=true}, [NodeName-apsrp5435][YBPk8E4TR6u7LFLxfaVWaw][apsrp5435][inet[/10.222.146.139:9300]]{master=true}]
at org.elasticsearch.client.transport.TransportClientNodesService$RetryListener.onFailure(TransportClientNodesService.java:242) ~[elasticsearch-1.5.2.jar!/:na]
at org.elasticsearch.action.TransportActionNodeProxy$1.handleException(TransportActionNodeProxy.java:78) ~[elasticsearch-1.5.2.jar!/:na]
at org.elasticsearch.transport.TransportService$Adapter$3.run(TransportService.java:468) ~[elasticsearch-1.5.2.jar!/:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_60]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_60]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]
Caused by: org.elasticsearch.transport.NodeDisconnectedException: [NodeName-apsrp5470][inet[/10.222.146.127:9300]][indices:data/write/index] disconnected**

Thread Dumps :-

java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0x00000007bd824f48> (a org.elasticsearch.common.util.concurrent.BaseFuture$Sync)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:997)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304)
at org.elasticsearch.common.util.concurrent.BaseFuture$Sync.get(BaseFuture.java:279)
at org.elasticsearch.common.util.concurrent.BaseFuture.get(BaseFuture.java:118)
at org.elasticsearch.action.support.AdapterActionFuture.actionGet(AdapterActionFuture.java:45)
at org.springframework.data.elasticsearch.core.ElasticsearchTemplate.index(ElasticsearchTemplate.java:519)

解决方案

Option is to try using another library if ES cannot be downgraded.

这篇关于Elasticsearch NoNodeAvailableException问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆