首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从特定的碎片中删除数据

如何从特定的碎片中删除数据
EN

Stack Overflow用户
提问于 2017-03-21 07:23:14
回答 1查看 785关注 0票数 2

我有一个索引,有5个主碎片,没有副本。

我的一个碎片(shard 1)处于未分配状态。当我检查日志文件时,我发现以下错误:

2 obv65.nvd,_2vfjgt.fdx,_3e3109.si,_3dwgm5_Lucene45_0.dvm,_3aks2g_Lucene45_0.dvd,_3d9u9f_76.del,_3e30gm.cfs,_3cvkyl_es090_0.tim,_3e309p.nvd,_3cvkyl_es090_0.blm];嵌套: FileNotFoundException_101a65.si;]

当我检查索引时,我找不到101a65.si shard 1的文件。

我无法找到丢失的.si文件。我试了很多次,但无法再次分配碎片1

还有其他方法让碎片1重新分配吗?还是需要删除整个碎片1数据?

请建议一下。

EN

回答 1

Stack Overflow用户

发布于 2017-03-21 10:49:08

通常,在堆栈跟踪中,您应该看到损坏碎片的路径,类似于MMapIndexInput(path="path/to/es/db/nodes/node_number/indices/name_of_index/1/index/some_file) (在这里,1是碎片编号)。

通常,删除path/to/es/db/nodes/node_number/indices/name_of_index/1应该有助于碎片的恢复。如果您仍然看到它未被分配,请尝试将此命令发送到您的集群(通常按照文献资料,它应该可以工作,尽管我不确定ES 1.x语法和命令):

代码语言:javascript
复制
POST _cluster/reroute
{
  "commands" : [ 
        {
          "allocate" : {
              "index" : "myIndexName", 
              "shard" : 1, 
              "node" : "myNodeName", 
              "allow_primary": true
          }
        }
    ]
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42920662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档