9

Ben AWS Elasticsearch bağlanmaya çalışıyorum ama her zaman aşağıdaki hatayı alıyorum:AWS Elasticsearch'a nasıl bağlanır?

Exception in thread "main" org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [] 
at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:278) 
at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:197) 
at org.elasticsearch.client.transport.support.InternalTransportClient.execute(InternalTransportClient.java:106) 
at org.elasticsearch.client.support.AbstractClient.index(AbstractClient.java:98) 
at org.elasticsearch.client.transport.TransportClient.index(TransportClient.java:334) 
at org.elasticsearch.action.index.IndexRequestBuilder.doExecute(IndexRequestBuilder.java:313) 
at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:91) 
at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:65) 
at com.c_backendcrawler.utility.ElasticSearch.uploadObject(ElasticSearch.java:25) 
at com.c_backendcrawler.Start.main(Start.java:34) 

Kodum takip ediyor: AWS Elasticsearch dan

//Create Client 
    Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", "zencubes-search").put("node.name","Darkhawk").build(); 
    TransportClient transportClient = new TransportClient(settings); 
    transportClient.addTransportAddress(new InetSocketTransportAddress(
      "x.x.x.x",9300)); 
    return transportClient; 

Çıktı:

{ 
status: 200, 
name: "Darkhawk", 
cluster_name: "817880037706:zencubes-search", 
version: { 
number: "1.5.2", 
build_hash: "62ff9868b4c8a0c45860bebb259e21980778ab1c", 
build_timestamp: "2015-04-27T09:21:06Z", 
build_snapshot: false, 
lucene_version: "4.10.4" 
}, 
tagline: "You Know, for Search" 
} 

Ben (https://search-zencubes-search-xxxxxxxx.eu-west-1.es.amazonaws.com/) kıvrılmaya çalıştım ve çalışıyor - ama 9300 numaralı bağlantı noktasında değil. Burada ne yapıyorum?

+0

Bağlantı noktası 9300 bu AWS örneğinde açık mı? – lmyers

+0

açık değil - ama sanırım her şeyi aradım ve bunu değiştirmek için bir ayar bulamadım - aws farklı bir varsayılan bağlantı noktası kullanıp kullanmadığını bilmiyorum. http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide: Eğer bir erişim ilkesini yapılandırmanız gerekebilir gibi değil elle yapılandırılmış EC2 örneği –

+0

görünüyor - Ah ve ben elasticsearch hizmet aws kullanıyorum /es-gsg.html – lmyers

cevap

2

Since the Elasticsearch Java SDK version 5.6 bir REST Client mevcut bulunmaktadır. Bu, AWS'de Elasticsearch Service'e bağlanmanızı sağlar.

Şu Elasticsearch Servis sürüm 5.5 kadar yükleme işlemlerine olanak sağlayan, ancak küçük kısıtlamalarla bir 5.5 küme karşı 5.6 Java SDK kullanabilirsiniz.

Not: başlatırken RestClient sırasıyla yerine 9200 limanını 80 veya 443 kullanmalıdır. Örneğin.

RestClient restClient = RestClient.builder(
    new HttpHost("search-test-elasti-xxxx-xxxxx.us-east-1.es.amazonaws.com", 80, "http")).build(); 
RestHighLevelClient restHighLevelClient = new RestHighLevelClient(restClient); 
// [...] 
+0

İsteğinizi nasıl imzalarsınız? – user3100209