2017-09-12 9 views
1

JavaでelasticsearchをTransportClient経由で使用しようとしています。私は、mysqlとelasticsearchを統合するためにlogstashを使用しました。 は、これは私が私がノードに接続できないと私はハンドシェークタイムアウトを取得し、初期化し、トランスポート・クライアントJavaでTransportClient経由の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輸送ポートは9300あるので、あなたのクライアントの作成ラインは、以下に示すように9300と9200を置き換えることで変更します。

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

関連資料hereを探します。

デフォルト(elasticsearch)以外の異なるcluster.nameを使用している場合は、以下に示すようにの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

は私logstash.confファイルに9300にポートを変更する必要があり、他の場所として、ここだけ? –

+0

上記の行のみ。 – avr

+0

'クラスタの一部ではないというエラーを取得する[elasticsearch]、無視しています...' –

関連する問題