2017-09-12 93 views
1

我想通过TransportClient在java中使用elasticsearch。我已经使用logstash将mysql与elasticsearch集成。 这就是我已经初始化,并且使用的传输客户端通过TransportClient在java中使用Elasticsearch

TransportClient client = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"),9200)); 

我无法连接到该节点,我也得到一个握手超时。 我得到以下错误:

TransportClientNodesService - failed to connect to node 
[{#transport#-1}{vrvVU4MGTAC7_5NCOiBseg}{localhost}{127.0.0.1:9200}], 
ignoring... 
org.elasticsearch.transport.ConnectTransportException: [][127.0.0.1:9200] handshake_timeout[30s] 
at org.elasticsearch.transport.TcpTransport.executeHandshake(TcpTransport.java:1614) ~[elasticsearch-5.5.2.jar:5.5.2] 
at org.elasticsearch.transport.TcpTransport.openConnection(TcpTransport.java:555) ~[elasticsearch-5.5.2.jar:5.5.2] 
at org.elasticsearch.transport.TcpTransport.openConnection(TcpTransport.java:116) ~[elasticsearch-5.5.2.jar:5.5.2] 
at org.elasticsearch.transport.TransportService.openConnection(TransportService.java:351) ~[elasticsearch-5.5.2.jar:5.5.2] 
at org.elasticsearch.client.transport.TransportClientNodesService$SimpleNodeSampler.doSample(TransportClientNodesService.java:407) [elasticsearch-5.5.2.jar:5.5.2] 
at org.elasticsearch.client.transport.TransportClientNodesService$NodeSampler.sample(TransportClientNodesService.java:357) [elasticsearch-5.5.2.jar:5.5.2] 
at org.elasticsearch.client.transport.TransportClientNodesService$ScheduledNodeSampler.run(TransportClientNodesService.java:390) [elasticsearch-5.5.2.jar:5.5.2] 
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:569) [elasticsearch-5.5.2.jar:5.5.2] 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_131] 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_131] 
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131] 

回答

3

Elasticsearch传输端口是93009300更换9200这样改变你的客户端创建线,如下图所示:

TransportClient client = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"),9300)); 

查找相关文档here

如果您正在使用不同的cluster.name比默认(elasticsearch),那么你必须设置等,虽然创造TransportClient如下图所示:

Settings settings = Settings.builder() 
     .put("cluster.name", "myClusterName").build(); 
TransportClient client = new PreBuiltTransportClient(settings); 
//Add transport addresses and do something with the client... 
+0

我应该改变端口9300在我logstash.conf文件和其他地方还是只在这里? –

+0

仅限上述行。 – avr

+0

将错误视为'不属于群集集群[elasticsearch],忽略...' –

相关问题