【问题标题】:elastic4s org.elasticsearch.client.transport.NoNodeAvailableException:elastic4s org.elasticsearch.client.transport.NoNodeAvailableException:
【发布时间】:2017-04-12 05:00:04
【问题描述】:

我在连接到本地版本的 elasticsearch 时遇到问题。我正在执行以下操作

val uri = ElasticsearchClientUri("elasticsearch://127.0.0.1:9300")
val client = ElasticClient.remote(uri)
lient execute { search in "_all" query "test" }

但是得到一个

org.elasticsearch.client.transport.NoNodeAvailableException: None of the    configured nodes are available: []

异常。如果我在 9200 / 或 9300 之间移动并不重要。据我所知,ES 已启动并正常运行。任何指针表示赞赏。

【问题讨论】:

  • 你好史蒂夫,你能检查这个链接吗:github.com/sksamuel/elastic4s看看它是否对你有帮助。
  • 你怎么用本地地址远程?你能用基本的 GET 请求在 9200 访问你的本地实例以查看它的响应吗?
  • 我只需val client = ElasticClient.local就可以连接到我的本地实例
  • 客户端和服务器的版本是什么?他们可能是无敌的。
  • 嗨@AkshayBijawe,感谢您的评论-我一直以此为基础和其他一些衍生产品的例子,但没有一个有效:-(

标签: scala elasticsearch elastic4s


【解决方案1】:

这有一些可能的原因:

  • 客户端和服务器版本可以不同
  • 集群名称可以不同
  • 访问主机和端口时可能存在网络问题。

【讨论】:

    【解决方案2】:

    在您本地的 ElasticSearch 实例中,您是否修改了 elasticsearch.yml 中的 cluster.name?在这种情况下,您需要构建 Settings 对象。

    val settings = Settings.settingsBuilder().put("cluster.name", "cluster_name").build()    // set cluster_name to cluster.name from your elasticsearch.yml
    val uri = ElasticsearchClientUri("elasticsearch://127.0.0.1:9300")
    client = ElasticClient.remote(settings, uri)
    

    【讨论】:

      【解决方案3】:

      如何使用 scala 创建 elasticsearch 2.4.0 传输客户端?

      import com.sksamuel.elastic4s.ElasticDsl._
      import com.sksamuel.elastic4s.{ElasticsearchClientUri, ElasticClient}
      import org.elasticsearch.common.settings.Settings    
      object Facebook {
              def main(args: Array[String]) {
      
      
          val settings = Settings.builder().put("cluster.name", "myClusterName").build()
          val client = ElasticClient.transport(settings, ElasticsearchClientUri("elasticsearch://localhost:9300"))
                client.execute { createIndex("places") shards 3 replicas 2 }
              }
          }
      

      scala maven 依赖项:

          <dependency>
              <groupId>com.sksamuel.elastic4s</groupId>
              <artifactId>elastic4s-core_2.11</artifactId>
              <version>2.4.0</version>
          </dependency>
      
          <dependency>
              <groupId>com.sksamuel.elastic4s</groupId>
              <artifactId>elastic4s-tcp_2.11</artifactId>
              <version>5.2.1</version>
          </dependency>
          <dependency>
              <groupId>org.elasticsearch</groupId>
              <artifactId>elasticsearch</artifactId>
              <version>2.4.0</version>
          </dependency>
      

      输出结果:

          log4j:WARN No appenders could be found for logger (org.elasticsearch.plugins).
          log4j:WARN Please initialize the log4j system properly.
          log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
          Exception in thread "main" java.lang.NoSuchFieldError: LUCENE_4_0_0
              at org.elasticsearch.Version.<clinit>(Version.java:44)
              at org.elasticsearch.client.transport.TransportClient$Builder.build(TransportClient.java:129)
              at com.sksamuel.elastic4s.ElasticClient$.transport(ElasticClient.scala:112)
              at example.Facebook$.main(Facebook.scala:23)
              at example.Facebook.main(Facebook.scala)
      

      【讨论】:

        猜你喜欢
        • 2019-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多