Elasticsearch索引恢复

一、查看分片失败原因

powershell 复制代码
GET /_cluster/allocation/explain
GET _cat/indices?v&health=red
GET /_cat/shards?v&h=n,index,shard,prirep,state,sto,sc,unassigned.reason,unassigned.details
ALLOCATION_FAILED:由于分片分配失败而未分配。
CLUSTER_RECOVERED:由于集群恢复而未分配。
DANGLING_INDEX_IMPORTED:由于导入了悬空索引导致未分配。
EXISTING_INDEX_RESTORED:由于恢复为已关闭的索引导致未分配。
INDEX_CREATED:由于API创建索引而未分配。
INDEX_REOPENED:由于打开已关闭索引而未分配。
NEW_INDEX_RESTORED:由于恢复到新索引而未分配。
NODE_LEFT:由于托管的节点离开集群而未分配。
REALLOCATED_REPLICA:确定了更好的副本位置,并导致现有副本分配被取消。
REINITIALIZED:当分片从开始移动回初始化,导致未分配。
REPLICA_ADDED:由于显式添加副本而未分配。
REROUTE_CANCELLED:由于显式取消重新路由命令而未分配。

查看es中未分配的分片

powershell 复制代码
curl -XGET localhost:9200/_cat/shards?h=index,shard,prirep,state,unassigned.reason| grep UNASSIGNED

二、尝试重新分配失败的分片

如果未分配的分片比较多,建议打开retry_failed=true。

powershell 复制代码
POST /_cluster/reroute?retry_failed=true

shard 自动分配 已经达到最大重试次数5次,仍然失败了,所以导致"shard的分配状态已经是:no_attempt"。

powershell 复制代码
PUT /indexname/_settings
{
  "index": {
    "allocation": {
      "max_retries": 20
    }
  }
}

推荐一个es web工具,可以帮助我们排查es相关问题。

链接:https://github.com/lmenezes/cerebro

相关推荐
小刘鸭!31 分钟前
Flink中并行度和slot的关系——任务和任务槽
大数据·flink
LI JS@你猜啊1 小时前
Elasticsearch 集群
大数据·服务器·elasticsearch
筒栗子1 小时前
复习打卡大数据篇——Hadoop HDFS 03
大数据·hadoop·hdfs
SelectDB4 小时前
Apache Doris 创始人:何为“现代化”的数据仓库?
大数据·数据库·云原生
SelectDB4 小时前
飞轮科技荣获中国电信星海大数据最佳合作伙伴奖!
大数据·数据库·数据分析
小刘鸭!5 小时前
Hbase的特点、特性
大数据·数据库·hbase
神奇侠20245 小时前
解决集群Elasticsearch 未授权访问漏洞
elasticsearch
Elastic 中国社区官方博客5 小时前
如何通过 Kafka 将数据导入 Elasticsearch
大数据·数据库·分布式·elasticsearch·搜索引擎·kafka·全文检索
神奇侠20245 小时前
解决单台Elasticsearch 未授权访问漏洞
elasticsearch
nece0015 小时前
elasticsearch 杂记
大数据·elasticsearch·搜索引擎