Elasticsearch主分片丢失-如何恢复?

时间:2018-11-29 14:20:59

标签: elasticsearch

我在AWS EC2上使用3个节点集群运行,我的一个节点崩溃了,重启后我看到2900个未分配的分片和集群状态为红色。

我将索引配置为具有1个副本的5个分片-我不明白为什么重新启动后无法从副本中恢复分片。

我尝试使用Elasticsearch重新路由API https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-reroute.html手动迁移分片 但是出现了错误:

  

无法取消2,无法在节点{infra-elasticsearch-1}上找到它

     

无法移动2,无法在节点{infra-elasticsearch-1}上找到它

     

[allocate_replica]尝试分配副本分片   [filebeat-demo00-2018.07.21] [2],而相应的主分片为   仍然   未分配的“}],”类型“:” illegal_argument_exception“,”原因“:” [allocate_replica]   试图分配副本分片[filebeat-demo00-2018.07.21] [2],   而相应的主分片仍未分配

看起来有些主碎片丢失了(磁盘上不存在),我也不知道如何将状态恢复为绿色。

谢谢

1 个答案:

答案 0 :(得分:0)

通过使用以下API请求,确保在活动节点中启用了分片分配

PUT _cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.enable": null
  }
}

还可以通过在Kibana上查看Monitoring应用程序的Indices信息来检查主要分片丢失的索引是否存在副本。

要检查正在进行的恢复过程,请使用以下API

GET /_recovery