2017-09-12 90 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],忽略...' –

相關問題