Elasticsearch的Java传输客户端抛出NoNodeAvailableException

时间:2015-06-26 14:30:42

标签: java scala maven elasticsearch client

我是elasticsearch的新手并尝试连接到运行1.5.2版的远程群集。我已将相同版本的Maven依赖项添加到我的项目中。我正在使用以下Scala代码初始化Transport客户端:

val settings: Settings = ImmutableSettings.settingsBuilder().put("cluster.name", "clusterName").put("client.transport.sniff", true).build()
val client: Client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress("XX.X.X.XX", 9300))

当我尝试检查索引是否存在时失败:

val exists = client.admin().indices().prepareExists("index").execute().actionGet().isExists()

" CLUSTERNAME"匹配属性' cluster.name'在cluster上的elasticsearch.yml中。我也尝试将client.transport.ping_timeout和client.transport.nodes_sampler_interval升级到30s无效,并尝试使用和不使用嗅探。

我在端口9200上使用了curl来验证我可以索引并搜索我的elasticsearch实例。

相关堆栈跟踪:

org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: []
    at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:305)
    at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:200)
    at org.elasticsearch.client.transport.support.InternalTransportIndicesAdminClient.execute(InternalTransportIndicesAdminClient.java:86)
    at org.elasticsearch.client.support.AbstractIndicesAdminClient.exists(AbstractIndicesAdminClient.java:170)
    at org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsRequestBuilder.doExecute(IndicesExistsRequestBuilder.java:53)
    at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:91)
    at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:65)

提前感谢您的任何帮助。

1 个答案:

答案 0 :(得分:0)

我知道这是一个非常老的问题,但是我知道这种情况下的一种解决方法是在您的设置中为“假”添加嗅探

put("client.transport.sniff", false)