ElasticSearch 0.90.5使用Java API偶尔抛出NoNodeAvailableException

时间:2013-11-06 15:19:08

标签: elasticsearch

我使用的是ElasticSearch 0.90.5。单节点集群并使用Java API进行与节点的所有通信(用于索引和搜索)。

我每隔10分钟就有一连串的文件被送入服务器。使用批量索引API可获得最佳性能。后续查询要么检索单个文档,要么运行More-Like-This查询。

偶尔(有时候经常)我们得到以下异常:

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

我可以向您保证服务器已启动并运行正常。这是我们看到的偶然问题。 NewRelic Server监视器显示盒子本身的压力非常小。在一小段时间内,最高CPU使用率 50%。 ES日志没有向我展示任何有用的东西。在受影响的时间段的日志中没有GC消息。

使用API​​时是否有其他人遇到此异常。任何见解将不胜感激。

相关堆栈跟踪:

Caused by: org.elasticsearch.client.transport.NoNodeAvailableException: No node available
        at org.elasticsearch.client.transport.TransportClientNodesService$RetryListener.onFailure(TransportClientNodesService.java:249)
        at org.elasticsearch.action.TransportActionNodeProxy$1.handleException(TransportActionNodeProxy.java:84)
        at org.elasticsearch.transport.TransportService$Adapter$2$1.run(TransportService.java:311)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

1 个答案:

答案 0 :(得分:1)

您是否可以通过任何机会发布完整的堆栈跟踪?

另外,通过查看elasticsearch留言板(http://elasticsearch-users.115913.n3.nabble.com/)了解类似的例外情况,您可能希望尝试增加client.transport.ping_timeout并查看是否有帮助