我们有一个包含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 回答
文件系统上有两个节点目录(节点\ 0和节点\ 1) .
当您启动Elasticsearch时,您启动一个节点(在ES-lingo中) . 您的计算机可以托管多个节点,如果您多次启动Elasticsearch,就会发生这种情况 . http端口的default settings是
9200-9300
,这意味着,ES正在寻找该范围内的空闲端口并将其节点绑定到它(对于带有9300-9400
的transport module也是如此)因此,如果您启动ES进程而另一个进程仍在运行,也就是说,它绑定到一个端口,则启动第二个节点,ES将为其创建一个新目录 . 如果您发出重启,可能会发生这种情况,但ES无法在新节点启动之前及时关闭 .
但是现在您的群集中有第三个节点,ES将为其分配分片 . 然后,您执行群集重新启动或类似的操作,然后在每台计算机上启动一个节点 . ES无法找到分配给第三个节点的分片,因为它没有旋转,它会显示红色或黄色状态,具体取决于第三个节点上的分片 . 如果删除索引数据,则不会从此缺失节点中删除数据 .
如果您不关心数据,可以关闭ES并删除这些目录或在每台计算机上启动两个ES节点,然后再次删除索引 .
然后,您可以将端口设置更改为一个特定端口,这将阻止第二个进程启动,因为它们将无法绑定到空闲端口 .