【问题标题】:Unassigned shards of the index in ElasticSearchElasticSearch 中未分配的索引分片
【发布时间】:2016-07-28 23:39:34
【问题描述】:

我的 ElasticSearch 集群中有未分配的分片,我不知道如何修复它。我删除了索引并重新创建了它,但图片是一样的。

如何解决?

--- 编辑 ----

{
  "cluster_name": "node_name",
  "status": "yellow",
  "timed_out": false,
  "number_of_nodes": 2,
  "number_of_data_nodes": 2,
  "active_primary_shards": 8,
  "active_shards": 12,
  "relocating_shards": 0,
  "initializing_shards": 0,
  "unassigned_shards": 4,
  "delayed_unassigned_shards": 0,
  "number_of_pending_tasks": 0,
  "number_of_in_flight_fetch": 0,
  "task_max_waiting_in_queue_millis": 0,
  "active_shards_percent_as_number": 75
}

【问题讨论】:

  • 什么样的分片?您正在运行多少个节点?你试过什么?你看过 _cat API 吗?
  • 2 个节点,8 个分片。我已经多次删除索引并再次生成它,但变成了上面相同的图片。什么是_cat API?
  • elastic.co/guide/en/elasticsearch/reference/current/cat.html 你查看过 /var/log/elasticsearch/{{cluster_name}}.log 吗?您使用的是哪个版本的 Elastic?
  • 顺便说一句,这不是一个罕见的问题。如果你在 Elastic 中搜索未分配的分片,很有可能你会找到你需要的。顺便说一句,版本在这里可以发挥很大的作用。在 ES 1.6 之前,这种情况很常见。这些天没那么多了。
  • 我昨天更新到了最后一个版本。好的一些解决方案来激活这个分片?

标签: elasticsearch sharding


【解决方案1】:

我发现了问题!节点 2.3.1 和 2.2.0 有 2 个不同版本。因为我昨天用当前版本更新了 ElasticSearch,所以我应该手动更新第二个节点,因为它在同一台服务器上。因为版本不同,所以有这个未分配的分片。

谢谢!

【讨论】:

    【解决方案2】:

    下面是一个可以强制修复的 bash(将服务器名称更改为目标节点的名称):

    IFS=$'\n'
    for line in $(curl -s 'localhost:9200/_cat/shards' | fgrep UNASSIGNED); do
      INDEX=$(echo $line | (awk '{print $1}'))
      SHARD=$(echo $line | (awk '{print $2}'))
    
      curl -XPOST 'localhost:9200/_cluster/reroute' -d '{
         "commands": [
            {
                "allocate": {
                    "index": "'$INDEX'",
                    "shard": '$SHARD',
                    "node": "SERVER_NAME_OF_THE TARGET_NODE",
                    "allow_primary": true
                }
            }
         ]
      }'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-02
      • 2018-04-10
      • 1970-01-01
      • 2011-08-04
      • 1970-01-01
      • 2014-07-02
      相关资源
      最近更新 更多