Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch ElasticSearch中索引的未分配碎片_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Sharding - Fatal编程技术网 elasticsearch ElasticSearch中索引的未分配碎片,elasticsearch,sharding,elasticsearch,Sharding" /> elasticsearch ElasticSearch中索引的未分配碎片,elasticsearch,sharding,elasticsearch,Sharding" />

elasticsearch ElasticSearch中索引的未分配碎片

elasticsearch ElasticSearch中索引的未分配碎片,elasticsearch,sharding,elasticsearch,Sharding,我的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

我的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
}

下面是一个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
            }
        }
     ]
  }'

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


谢谢

什么样的碎片?您正在运行多少个节点?你试过什么?你看过《猫的API》了吗?2个节点,8个碎片。我多次删除索引并再次生成它,但始终与上面的图片相同。什么是cat API?您查看过/var/log/elasticsearch/{{cluster_name}}.log吗?你用的是什么版本的Elastic?顺便说一句,这不是一个罕见的问题。如果你在Elastic中搜索未分配的碎片,你很可能会找到你需要的。顺便说一句,版本在这里可以起到很大的作用。在ES1.6之前,这种情况很常见。这几天没那么多。我昨天更新到了最新版本。好的,有什么办法可以激活这个碎片吗?