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

时间:2014-01-22 07:18:25

标签: elasticsearch

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

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

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

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

节点2
ElasticSearch \ DATA \群集名称\节点\ 0 \指标\ ElasticSearch \ data \ clustername \ nodes \ 1 \ indices \ someIndex(< - 仍然存在)

任何人都知道造成这种情况的原因是什么?

ES版:0.90.5

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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

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