[使用ElasticSearch版本2.0]ElasticSearch 2.0傳送客戶 - 無節點可用的例外
在etc/hosts文件 「esnode」 被映射到IP地址,如圖(其中ES運行一些其它機器)
192.168.2.219 esnode
的傳輸客戶端代碼::
public Client getClient() {
if ((this.client == null)) {
try {
Settings settings = Settings.settingsBuilder()
.put("cluster.name", "myclustername").build();
TransportClient tClient = TransportClient.builder().settings(settings).build();
String[] nodes = "esnode:9300".split(COMMA);
for (String node : nodes) {
String[] hostPort = node.split(COLON);
tClient.addTransportAddress(new InetSocketTransportAddress(
InetAddress.getByName(hostPort[0]), Integer.parseInt(hostPort[1])));
}
this.client = tClient;
} catch (Exception e) {
e.printStackTrace();
}
}
return this.client;
}
該客戶端代碼運行,但執行下面的代碼時: this.getClient()。prepareGet(indexName,typeName,String.valueOf(id))。get();
拋出異常:
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.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:85)
at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:59)
at org.elasticsearch.action.ActionRequestBuilder.get(ActionRequestBuilder.java:67)
我也用,而不是主機名ip地址嘗試。上面的代碼運行正常,如果
esnode被映射到127.0.0.1
有人可以幫...
你讀過[這個答案](http://stackoverflow.com/a/23521094/3219121)? – matagus