如何在elasticsearch中删除未分配的分片?

时间:2016-05-25 08:09:07

标签: elasticsearch

我在一台计算机上只有一个节点,索引有5个没有副本的分片。以下是一些描述我的elasticsearch节点的参数(健康索引在以下列表中被忽略):

GET /_cat/indices?v
health status index   pri rep docs.count docs.deleted store.size pri.store.size 
red    open   datas     5   0  344999414            0     43.9gb         43.9gb 

GET _cat/shards                                    
datas   4 p STARTED    114991132 14.6gb 127.0.0.1 Eric the Red 
datas   3 p STARTED    114995287 14.6gb 127.0.0.1 Eric the Red 
datas   2 p STARTED    115012995 14.6gb 127.0.0.1 Eric the Red 
datas   1 p UNASSIGNED                                         
datas   0 p UNASSIGNED                  

shards disk.indices disk.used disk.avail disk.total disk.percent host      ip        node         
14       65.9gb     710gb    202.8gb    912.8gb           77 127.0.0.1 127.0.0.1 Eric the Red 
 3                                                                               UNASSIGNED   

2 个答案:

答案 0 :(得分:2)

对于具有UNASSIGNED分片的索引,将副本数量减少到零可能会起到作用,至少对于单节点群集而言。

PUT /{my_index}/_settings
{
   "index" : {
       "number_of_replicas" : 0
   }
}

reference

答案 1 :(得分:0)

您可以尝试按照以下方式删除未分配的分片(不确定它是否适用于数据索引,适用于奇迹索引)

1)安装elasticsearch插件 - head 。请参阅Elastic Search Head Plugin Installation

2)在brwoser中打开elasticsearch插件 - head URL。从这里您可以轻松查看哪些是未分配的分片和其他相关信息。这将显示有关该碎片的信息。

{
"state": "UNASSIGNED",
 "primary": true,
 "node": null,
 "relocating_node": null,
 "shard": 0,
"index": ".marvel-es-2016.05.18",
 "version": 0,
"unassigned_info": {
"reason": "DANGLING_INDEX_IMPORTED",
"at": "2016-05-25T05:59:50.678Z"
  }
 }

从这里您可以复制索引名称,即.marvel-es-2016.05.18

3)现在,您可以在sense

中运行此查询
 DELETE .marvel-es-2016.05.18

希望这有帮助!