【问题标题】:Elasticsearch: Inconsistent number of shards in stats & cluster APIsElasticsearch:统计数据和集群 API 中的分片数量不一致
【发布时间】:2015-04-23 14:39:28
【问题描述】:

我将数据上传到我的单节点集群并将索引命名为“gequest”。

当我从http://localhost:9200/_cluster/stats?human&pretty 获取时,我得到:

 "cluster_name" : "elasticsearch",
  "status" : "yellow",
  "indices" : {
    "count" : 1,
    "shards" : {
      "total" : 5,
      "primaries" : 5,
      "replication" : 0.0,
      "index" : {
        "shards" : {
          "min" : 5,
          "max" : 5,
          "avg" : 5.0
        },
        "primaries" : {
          "min" : 5,
          "max" : 5,
          "avg" : 5.0
        },
        "replication" : {
          "min" : 0.0,
          "max" : 0.0,
          "avg" : 0.0
        }
      }
    }

当我在 http://localhost:9200/_stats?pretty=true 上做 GET 时

"_shards" : {
    "total" : 10,
    "successful" : 5,
    "failed" : 0
  }

为什么两个报告中的分片总数不一致?为什么统计 API 中的总分片为 10。如何追踪其他 5 个?

【问题讨论】:

    标签: elasticsearch lucene


    【解决方案1】:

    从结果来看,您很可能只有一个 elasticsearch 节点正在运行,并创建了一个具有默认值的索引(这会创建 5 个分片和一个副本)。由于只有一个节点运行 elasticsearch 无法在任何地方分配副本分片(elasticsearch 永远不会在单个节点中分配同一分片的主副本和副本)。

    _cluster/stats API 提供有关集群的信息,包括当前状态。从您的结果可以看出,集群状态为“黄色”,表示所有主分片都已分配,但并非所有副本都已分配/初始化。所以它只将分配的分片显示为 5。

    _stats API 提供有关集群中索引的信息。它将提供有关索引将拥有多少分片以及多少副本的信息。由于您的索引总共需要 10 个分片(创建索引时指定的 5 个主分片和 5 个副本),因此统计信息包含总共 10 个、成功 5 个和失败 5 个(失败,因为无法在任何节点中分配)的信息。

    使用http://localhost:9200/_cat/shards查看整体分片状态

    【讨论】:

    • 谢谢,刚刚尝试添加另一个节点后验证。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-02
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    相关资源
    最近更新 更多