Elasticsearch:统计数据中的分片数量不一致&集群API

时间:2015-04-23 06:13:56

标签: elasticsearch lucene

我将数据上传到我的单节点群集,并将索引命名为' 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?

1 个答案:

答案 0 :(得分:2)

根据结果,您可能正在运行单个elasticsearch节点,并使用默认值创建索引(创建5个分片和一个副本)。由于只有一个节点正在运行,弹性搜索无法在任何地方分配副本分片(elasticsearch永远不会在单个节点中分配同一分片的主副本和副本)。

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

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

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