2015-11-13 6 views
9
ES 2.このためのJava APIを使用して2をElasticsearchに接続しようとすると、私は次のエラーを取得する

は、コードです.connectedNodes()しかし、新しいマッピングを追加しようとすると、NoNodeAvailableExceptionが発生する例外が発生します。このコードは以前のバージョンのElasticsearchで動作しました。何が間違っているの?Elasticsearch NoNodeAvailableException

NoNodeAvailableException[None of the configured nodes are available: 
[]]  at 
org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:280) 
    at 
org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:197) 
    at 
org.elasticsearch.client.transport.support.TransportProxyClient.execute(TransportProxyClient.java:55) 
    at 
org.elasticsearch.client.transport.TransportClient.doExecute(TransportClient.java:272) 
    at 
org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:347) 
    at 
org.elasticsearch.client.support.AbstractClient$IndicesAdmin.execute(AbstractClient.java:1177) 
    at 
org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:85) 
    at 
org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:59) 
+2

[この記事のように]アクセスしようとしているクラスタにノードを設定した場合(http://stackoverflow.com/questions/33412549/how-to-bind-elasticsearch-2-0-on-both -loopback-and-non-loopback-interfaces/33438638#33438638)改善が見られますか?また、ESノードが起動時にバインドされるIP(「[INFO] [transport] [main_node_2_0]のようなもの)に関連して、ノードに接続するためにどのIPを使用しているのか不思議です。 起動時にish_address {127.0.0.1:9300}、bound_addresses {127.0.0.1:9300}、{[:: 1]:9300} 'と表示されます)。 –

+0

あなたの設定は 'elasticsearch.yml'ファイルで遊んだことがありますか? 'minimum_master_nodes'には何かありますか? –

+0

ホスト['Receptor.es_ip']で実行されている外部elasticsearchクライアントとポート9300で通信しようとしています –

答えて

7

@AndreiStefanはthe post he linkedのおかげで問題を解決しました。その解決策は次のように簡単でした:

network.bind_host: 0 

ありがとうございます。

+0

私はこれをどこに追加すればよいですか? elasticsearch.ymlで? –

+0

はい、確かに。 [ドキュメンテーション](https://www.elastic.co/guide/en/elasticsearch/reference/2.0/modules-network.html)に示すように、[その他の投稿](https://discuss.elastic.co/ t/es-2-0-network-config-options/33396/2)を参照してください。これはElasticsearch 2.xのためのものであり、後のバージョンで動作するかどうかは不明です。 –

0

使用している設定に問題がある可能性があります。代わりに、3つの手順でクライアントを作成する

TransportClient transportClient = TransportClient.builder().settings(settings).build(); 
Client c = null; 
try { 
c = transportClient.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(Receptor.es_ip), 9300)); 
} catch (UnknownHostException e) { 
System.err.println(Util.getTimestampStr() + "UnknownHostException error."); 
e.printStackTrace(); 
} 

このようにそれを作成してみてください:あなたはより多くのデータが必要な場合は同様の質問には、この古い答えをチェック

Client client = new TransportClient() 
      .addTransportAddress(new InetSocketTransportAddress(
        InetAddress.getByName(Receptor.es_ip), 
        9300)); 

Elastic search problems

+0

私のソリューションの問題点は何ですか?クラスタ名を入力するだけです。以前のバージョンのElasticsearchとそのAPIでこのコードを使用していました。 –

関連する問題