elasticsearch 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
{
"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之前,这种情况很常见。这几天没那么多。我昨天更新到了最新版本。好的,有什么办法可以激活这个碎片吗?