ich folgende Fehlermeldung erhalten, wenn 2. Dies ist der Code Elasticsearch 2 unter Verwendung des Java-API für ES zu verbinden versuchen: mein ES Knoten auf dem transportClientElasticsearch - NoNodeAvailableException
Settings settings = Settings.settingsBuilder().put("cluster.name", Receptor.clusterName).build();
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();
}
CreateIndexRequestBuilder createIndexRequestBuilder = c.admin().indices().prepareCreate(indexName);
createIndexRequestBuilder.addMapping(documentName, json);
createIndexRequestBuilder.execute().actionGet();
ich in der Lage bin zu erhalten .connectedNodes(), aber wenn ich versuche, ein neues Mapping hinzuzufügen, bekomme ich die Ausnahme NoNodeAvailableException. Dieser Code hat mit früheren Versionen von Elasticsearch funktioniert. Irgendeine Idee von was ist falsch?
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)
Wenn Sie Ihren Knoten im Cluster konfigurieren, auf den Sie zugreifen möchten, wie [in diesem Beitrag] (http://stackoverflow.com/questions/33412549/how-to-bind-elasticsearch-2-0-on-both -loopback-and-non-loopback-interfaces/33438638 # 33438638) siehst du irgendeine verbesserung? Ich wäre auch neugierig zu wissen, welche IP verwenden Sie für die Verbindung zu den Knoten, relativ zu welchen IPs die ES-Knoten beim Start gebunden werden (etwas wie '[INFO] [Transport] [main_node_2_0] publ ish_address {127.0.0.1:9300}, bound_addresses {127.0.0.1:9300}, {[:: 1]: 9300} 'in Protokollen beim Start). –
Haben Sie mit Ihrer Konfiguration in 'elasticsearch.yml' gespielt? Gibt es etwas für 'minimum_master_nodes'? –
Sie versuchen, den externen elasticsearch Client zu kommunizieren, der im Host ['Receptor.es_ip'] mit dem Port' 9300' läuft. Bitte vergewissern Sie sich, dass der Elasticsearch ausgeführt wird oder nicht –