gpt4 book ai didi

java - Ubuntu 14.04 上的 ElasticSearch Java 传输客户端 NoNodeAvailableException

转载 作者:行者123 更新时间:2023-12-02 22:39:35 25 4
gpt4 key购买 nike

我正在运行 Elasticsearch v. 2.3.2 ,使用 Java 7。以下是 curl http://172.31.11.83:9200 的打印输出:

{
"name" : "ip-172-31-11-83",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "2.3.2",
"build_hash" : "b9e4a6acad4008027e4038f6abed7f7dba346f94",
"build_timestamp" : "2016-04-21T16:03:47Z",
"build_snapshot" : false,
"lucene_version" : "5.5.0"
},
"tagline" : "You Know, for Search"
}

...我在我的 Java 代码中使用以下内容:
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>2.3.2</version>
</dependency>

我的防火墙规则中打开了端口 9200 和 9300 对于我的 ES 服务器,并且可以从我的笔记本电脑(Mac OSX)成功执行所述 Java 代码。以下是启动该过程的代码片段(这工作正常):
Settings settings = Settings.settingsBuilder()
.put("cluster.name", "elasticsearch").build();
esClient =TransportClient.builder().settings(settings).build().addTransportAddress(new
InetSocketTransportAddress(new InetSocketAddress(InetAddress.getByName("172.31.11.83"), 9300)));

然后,我尝试发出索引请求(当我在 Ubuntu 14.04 上运行代码时失败:
adminClient = esClient.admin().indices();
IndicesExistsResponse response = adminClient.exists(request).actionGet();

我的 elasticsearch.yml 文件包含以下网络设置:
network.bind_host: 0
network.publish_host: 172.31.11.83
transport.tcp.port: 9300
http.port: 9200

我也试过 network.bind_host: 172.31.11.83无济于事。使用 curl ,我可以从所有机器访问端口 9200。 curl 报告的集群名称为“elasticsearch” .

当我启动 ES 时,我在 中看到以下内容elasticsearch.log :
publish_address {172.31.11.83:9300}, bound_addresses {[::]:9300}

然而,我得到的异常如下:
NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{172.31.11.83}{172.31.11.83:9300}]]
at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:290)
at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:207)
at org.elasticsearch.client.transport.support.TransportProxyClient.execute(TransportProxyClient.java:55)
at org.elasticsearch.client.transport.TransportClient.doExecute(TransportClient.java:283)
at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:347)
at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:336)
at org.elasticsearch.client.support.AbstractClient$IndicesAdmin.execute(AbstractClient.java:1178)
at org.elasticsearch.client.support.AbstractClient$IndicesAdmin.exists(AbstractClient.java:1198)

同样,这个确切的代码可以在我的本地机器上运行。有什么想法吗?

最佳答案

有相同的问题..

在同一个 AWS 套件上将弹性从 1.7 升级到 2.3.2

乌本托 14.0.4

像以前一样在 9300 上进行弹性绑定(bind)传输

安全组已打开端口(未更改)

现在远程客户端无法通过传输层连接 - 与上述相同的错误。

我的设置中唯一改变的是 Elasticsearch 的版本

关于java - Ubuntu 14.04 上的 ElasticSearch Java 传输客户端 NoNodeAvailableException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37016135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com