首页 文章

索引删除时,Elasticsearch中不会同步删除数据文件夹

提问于
浏览
1

我们有一个包含2个节点的ES集群 . 当我们删除索引时,不会删除群集中的所有文件夹(在文件系统上),这会在重新启动一个服务器时导致一些问题 .

然后我们删除的索引以一些奇怪的状态分布,表明群集运行状况不是绿色 .

例 . 我们删除名称为someIndex的索引,删除后检查文件系统,可以看到:

节点1
ElasticSearch \ DATA \群集名称\节点\ 0 \指标
ElasticSearch \数据\群集名称\节点\ 1个\指数\

节点2
ElasticSearch \ data \ clustername \ nodes \ 0 \ indices \ ElasticSearch \ data \ clustername \ nodes \ 1 \ indices \ someIndex(< - 仍然存在)

有谁知道这导致了什么?

ES版本:0.90.5

1 回答

  • 2

    文件系统上有两个节点目录(节点\ 0和节点\ 1) .

    当您启动Elasticsearch时,您启动一个节点(在ES-lingo中) . 您的计算机可以托管多个节点,如果您多次启动Elasticsearch,就会发生这种情况 . http端口的default settings9200-9300 ,这意味着,ES正在寻找该范围内的空闲端口并将其节点绑定到它(对于带有 9300-9400transport module也是如此)

    因此,如果您启动ES进程而另一个进程仍在运行,也就是说,它绑定到一个端口,则启动第二个节点,ES将为其创建一个新目录 . 如果您发出重启,可能会发生这种情况,但ES无法在新节点启动之前及时关闭 .

    但是现在您的群集中有第三个节点,ES将为其分配分片 . 然后,您执行群集重新启动或类似的操作,然后在每台计算机上启动一个节点 . ES无法找到分配给第三个节点的分片,因为它没有旋转,它会显示红色或黄色状态,具体取决于第三个节点上的分片 . 如果删除索引数据,则不会从此缺失节点中删除数据 .

    如果您不关心数据,可以关闭ES并删除这些目录或在每台计算机上启动两个ES节点,然后再次删除索引 .

    然后,您可以将端口设置更改为一个特定端口,这将阻止第二个进程启动,因为它们将无法绑定到空闲端口 .

相关问题