0
我是ElasticSearch新手,在連接到ElasticSearch時遇到問題。請看以下細節:如何檢查ElasticSearch是否正常運行
當我嘗試從我的scal一個代碼,我獲得以下錯誤:
org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [] at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:305) at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:200) at org.elasticsearch.client.transport.support.InternalTransportClient.execute(InternalTransportClient.java:106) at org.elasticsearch.client.support.AbstractClient.index(AbstractClient.java:102) at org.elasticsearch.client.transport.TransportClient.index(TransportClient.java:340) at com.sksamuel.elastic4s.IndexDsl$IndexDefinitionExecutable$$anonfun$apply$1.apply(IndexDsl.scala:23) at com.sksamuel.elastic4s.IndexDsl$IndexDefinitionExecutable$$anonfun$apply$1.apply(IndexDsl.scala:23) at com.sksamuel.elastic4s.Executable$class.injectFuture(Executable.scala:21) at com.sksamuel.elastic4s.IndexDsl$IndexDefinitionExecutable$.injectFuture(IndexDsl.scala:20) at com.sksamuel.elastic4s.IndexDsl$IndexDefinitionExecutable$.apply(IndexDsl.scala:23) at com.sksamuel.elastic4s.IndexDsl$IndexDefinitionExecutable$.apply(IndexDsl.scala:20) at com.sksamuel.elastic4s.ElasticClient.execute(ElasticClient.scala:28)
這是我的代碼,我使用的連接:
val settings = ImmutableSettings.settingsBuilder()
.put("cluster.name", "elasticsearch")
.build()
val client = ElasticClient.remote(settings, ElasticsearchClientUri("elasticsearch://10.50.xxx.xxx:9300"))
我還檢查我的連接並且我能夠在9200和9300端口上成功telnet 10.50.xxx.xxx
我在某處讀到問題可能與
http.cors
,So我添加下面的服務器上線/etc/elasticsearch/elasticsearch.yml
文件:http.cors.allow-origin: "/.*/" http.cors.enabled: true
請建議我究竟做錯了什麼?
- 更新 -
感謝@ Evaldas Buinauskas,這是版本的問題,我已經安裝了彈性2.0版並使用圖書館和1.7版本的插件。我把我的彈性降到1.7版,一切正常!
你能告訴你的elasticsearch版本,頭部插件和scala客戶端版本是什麼? Elasticsearch在2.0中刪除了'_status' api,它用於頭部插件來確定集羣健康狀況,也許您的Scala客戶端也在使用它。 '_status'被'_recovery'取代。 –
謝謝,這是版本問題,我安裝了彈性版本2.0,並使用1.7版的庫和插件。我把我的彈性降到1.7版,一切正常! –