Java 无法连接到Elasticsearch 6.1.0[配置的节点均不可用]
我能够通过cURL和plugin head连接到弹性搜索Java 无法连接到Elasticsearch 6.1.0[配置的节点均不可用],java,
elasticsearch,Java,
elasticsearch,我能够通过cURL和plugin head连接到弹性搜索6.1.0,并对文档进行索引、更新、删除和查询,但我无法通过java客户端连接到弹性搜索6.1.0,即 /** * Elasticsearch */ // https://mvnrepository.com/artifact/org.elasticsearch/elasticsearch compile group: 'org.elasticsearch', name: 'elasticsearc
6.1.0
,并对文档进行索引、更新、删除和查询,但我无法通过java客户端连接到弹性搜索6.1.0
,即
/**
* Elasticsearch
*/
// https://mvnrepository.com/artifact/org.elasticsearch/elasticsearch
compile group: 'org.elasticsearch', name: 'elasticsearch', version: '6.1.0'
// https://mvnrepository.com/artifact/org.elasticsearch.client/transport
compile group: 'org.elasticsearch.client', name: 'transport', version: '6.1.0'
依赖关系。
下面是elasticsearch.yml
#cluster.name: my-application
cluster.name: saasworthy-qa
node.name: qa-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
#network.host: 192.168.0.1
network.host: 10.10.10.2
#http.port: 9200
#discovery.zen.ping.unicast.hosts: ["host1", "host2"]
#discovery.zen.ping.unicast.hosts: ["10.10.10.2"]
#discovery.zen.minimum_master_nodes: 1
通过java客户端接收到的错误为:
ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
Exception in thread "main" NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{SLvQfw9FREWVhpwTBtjNWg}{X.X.X.X}{X.X.X.X:9300}]]
at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:347)
at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:245)
at org.elasticsearch.client.transport.TransportProxyClient.execute(TransportProxyClient.java:60)
at org.elasticsearch.client.transport.TransportClient.doExecute(TransportClient.java:360)
at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:405)
at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:394)
at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:46)
at com.sw.config.elastic.connection.factory.SaaSWorthyElasticsearchClientFactory.main
另外,netstat
info
netstat -antp | grep 9300
tcp6 0 0 10.10.10.2:9300 :::* LISTEN 19768/java
请帮我解决这个问题。谢谢。For Java Elasticsearch提供了两套客户端API:
用于Java传输客户端的elasticsearch.yml(单节点):
Java传输客户端示例:
// on startup
TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)
.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"), 9300));
System.out.println(client.listedNodes());
// on shutdown
client.close();
要使用Java传输客户端,我们需要做,这对于初学者来说非常困难。使用Java REST客户端更容易
注意:Elasticsearch计划在Elasticsearch 7.0中弃用TransportClient,并在8.0中完全移除它。更多信息
可以找到(只需向下滚动搜索
警告(符号)
将client.transport.sniff
标记为false
后,我可以通过传输客户端进行连接。作为dev环境的服务器,集群只包含一个节点
更多
// on startup
TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)
.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"), 9300));
System.out.println(client.listedNodes());
// on shutdown
client.close();