2015-11-06 584 views
0

我是ElasticSearch新手,在連接到ElasticSearch時遇到問題。請看以下細節:如何檢查ElasticSearch是否正常運行

  1. HQ插件和插件都出現了不同的結果:
    HQ輸出的插件: Output of HQ Plugin
    頭輸出的插件: Output of Head Plugin

  2. 當我嘗試從我的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版,一切正常!

    +1

    你能告訴你的elasticsearch版本,頭部插件和scala客戶端版本是什麼? Elasticsearch在2.0中刪除了'_status' api,它用於頭部插件來確定集羣健康狀況,也許您的Scala客戶端也在使用它。 '_status'被'_recovery'取代。 –

    +0

    謝謝,這是版本問題,我安裝了彈性版本2.0,並使用1.7版的庫和插件。我把我的彈性降到1.7版,一切正常! –

    回答

    1

    該問題來自不同的Elasticsearch,頭部插件和Scala客戶端版本。

    在前期2.0 Elasticsearch仍然支持棄用_status終點(在1.2.0不建議使用)

    2.0版完全放棄了它,並與_recovery取而代之。

    Head和Scala都沒有升級,並試圖調用掉落的API。

    相關問題