2015-04-23 75 views
0

我将数据上传到了我的单个节点群集,并将该索引命名为“gequest”。Elasticsearch:统计信息和群集API中的分片数量不一致

当我从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

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

GET怎么来的碎片在两份报告不一致的总数是多少?统计API为什么总共有10个碎片。如何跟踪其他5个?

回答

2

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

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

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

使用http://localhost:9200/_cat/shards观察整体碎片状态

+0

感谢,试图将另一个节点之后仅仅验证。 – Mohitt