【问题标题】:How to check if ElasticSearch is running properly如何检查 ElasticSearch 是否正常运行
【发布时间】:2016-02-07 05:36:47
【问题描述】:

我是 ElasticSearch 的新手,在连接到 ElasticSearch 时遇到问题。请查看以下详细信息:

  1. hq 插件和 head 插件显示不同的结果:
    HQ 插件的输出:
    头部插件的输出:

  2. 当我尝试从我的 scala 代码连接时,我收到以下错误:

    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"))
  1. 我还检查了我的连接,我能够在 9200 和 9300 端口上成功 telnet 10.50.xxx.xxx

  2. 我在某处读到问题可能出在http.cors,因此我在服务器上的/etc/elasticsearch/elasticsearch.yml 文件中添加了以下几行:

    http.cors.allow-origin: "/.*/"
    http.cors.enabled: true
    


    请建议我做错了什么?

-- 更新--
感谢 @Evaldas Buinauskas,这是版本问题,我安装了弹性 2.0 版并使用 1.7 版的库和插件。我将我的弹性降级到 1.7 版,一切正常!

【问题讨论】:

  • 你能说说你的elasticsearch版本、head插件和scala客户端版本是什么吗? Elasticsearch 在 2.0 中删除了 _status api,它在 head 插件中用于确定集群的健康状况,也许您的 Scala 客户端也在使用它。 _status 被替换为 _recovery
  • 谢谢,是版本问题,我安装了elastic 2.0版本,使用的是1.7版本的库和插件。我将我的弹性降级到 1.7 版,一切正常!

标签: scala elasticsearch elasticsearch-plugin


【解决方案1】:

问题来自不同的 Elasticsearch、head 插件和 Scala 客户端版本。

在 2.0 之前的版本中,Elasticsearch 仍然支持已弃用的 _status 端点(在 1.2.0 中已弃用)

2.0 版完全删除它并用_recovery 替换它。

head 和 Scala 都没有升级并尝试调用 drop api。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-28
    • 2019-08-25
    • 2022-12-03
    • 2012-09-10
    • 2020-12-10
    • 2017-10-14
    • 2016-10-21
    • 1970-01-01
    相关资源
    最近更新 更多