elasticsearch - elasticsearch:重新启动单个节点集群时,所有主分片均变为非事件状态

标签 elasticsearch

我启动了一个新的Elasticsearch集群并添加了一个新索引,然后将其关闭。
当我尝试再次启动它时,不再有 Activity 的碎片。所有分片都变为非 Activity 状态且未分配。
我在下面使用此索引设置:

"settings": {
            "number_of_shards": 32,
            "number_of_replicas": 3
        }

这是健康输出:
{
  "cluster_name" : "sailcraft",
  "status" : "red",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 128,
  "number_of_pending_tasks" : 0
}

这是same problem which has been marked solved。但是我不认为这是解决方案。

编辑:

这是相同的问题,但我认为该帖子没有得到正确的答案。它说如果我们有2个以上的副本分片,则需要2个以上的节点。我阅读了所有相关文档,并且没有任何此类限制。

编辑2:
解决方案:
设置index.recovery.initial_shards提供了以下内容:
基本上,当使用本地网关时,一旦在群集的节点之间找到了法定数量的副本,便会恢复“碎片”。
让我们获取N个分片,其中包含1个副本(每个分片2个副本)。默认值(法定人数)意味着一旦找到碎片的单一副本,它将被恢复。如果您有2个副本(3个副本),则只有找到2个副本后,它才会恢复该分片。
您可以设置此设置,以防丢失大量节点,并且法定设置过于严格。实际上,您可以将其设置在“ Activity ”索引上(显然,它处于“红色”状态,因为并非所有分片都已恢复)。

最佳答案

这是the documentation提到的。确实,这并不明显,但确实存在:

index.recovery.initial_shards

When using local gateway a particular shard is recovered only if there can be allocated quorum shards in the cluster. It can be set to:

quorum (default)

quorum-1 (or half)

full

full-1.

Number values are also supported, e.g. 1.


如果您确实想让节点运行,请在index.recovery.initial_shards: 1文件中设置elasticsearch.yml

关于elasticsearch - elasticsearch:重新启动单个节点集群时,所有主分片均变为非事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31045213/

相关文章:

mongodb - Playframework + Morphia + MongoDb + ElasticSearch = Disater?

elasticsearch - 使用kibana在elasticsearch的两个字段中搜索

elasticsearch - Couchbase 5 是否使 ElasticSearch 无法用于全文搜索?

c# - 如何使用NLog登录到Amazon ElasticSearch?

elasticsearch - 如何验证Elasticsearch无痛脚本?

elasticsearch - Elasticsearch:搜索嵌套参数时出现问题

elasticsearch - Kibana 替代品

elasticsearch - 最小值应匹配过滤查询

elasticsearch - 我可以在无映射的ElasticSearch上索引嵌套文档吗?

java - Elasticsearch 2.2.0 ESIntegTestCase : ensureYellow() results in “timed out waiting for yellow”