强制重置未分片的分片,这个问题源自于Elasticsearch维护中,Node意外退出的场景。

意外退出后Elasticsearch由于网络原因或者jvm性能压力,未能短时间内分配分片。

Elasticsearch强制重置未分配的分片(unassigned)

看一下分片的状态。可以看到有一些分片处于未分配状态。

curl http://10.93.21.21:8049/_cat/shards

Elasticsearch强制重置未分配的分片(unassigned)

 

我们这里是node-client09节点挂掉了,重启这个节点之后,通过下面的脚本,可以将分片重新分派到node-client09。

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

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-20
  • 2022-12-23
  • 2021-06-24
  • 2021-08-22
  • 2021-11-02
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-04-24
  • 2021-11-24
  • 2021-11-16
  • 2022-12-23
  • 2021-11-25
  • 2022-01-19
相关资源
相似解决方案