【发布时间】:2015-09-13 13:31:55
【问题描述】:
我是 elasticsearch 新手,正在尝试连接到运行版本 1.5.2 的远程集群。我已将相同版本的 Maven 依赖项添加到我的项目中。我正在使用以下 Scala 代码初始化传输客户端:
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”匹配集群上 elasticsearch.yml 中的属性“cluster.name”。我还尝试将 client.transport.ping_timeout 和 client.transport.nodes_sampler_interval 提高到 30 秒,但无济于事,并尝试了嗅探和不嗅探。
我在端口 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)
提前感谢您的帮助。
【问题讨论】:
-
嘿,我遇到了完全相同的问题...花了我将近一个小时才发现我的配置被我的类路径上已弃用的
elasticsearch.yml覆盖;D
标签: java scala maven elasticsearch client