【问题标题】:Remove of data folder is not synced in Elasticsearch upon index delete删除索引后,Elasticsearch 中不会同步删除数据文件夹
【发布时间】:2014-02-12 03:13:43
【问题描述】:

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

然后,我们删除的索引以某种奇怪的状态分布,表明集群健康状况不是绿色。

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

节点1
ElasticSearch\data\clustername\nodes\0\indices\
ElasticSearch\data\clustername\nodes\1\indices\

节点2
ElasticSearch\data\clustername\nodes\0\indices\ ElasticSearch\data\clustername\nodes\1\indices\someIndex(

有人知道这是什么原因吗?

ES 版本:0.90.5

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    文件系统上的每个节点都有两个目录(它们是节点\0 和节点\1)。

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

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

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

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

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

    【讨论】:

    • 嗯,可能是这样。因此,如果我每台服务器只运行一个节点,那么每台服务器上的 clustername\nodes\ 中不应该有一个以上的文件夹吗?有没有禁止多个节点的设置。
    • @Marcus 打开config/elasticsearch.yml 并取消注释node.max_local_storage_nodes: 1 行。这样,您只能从该安装路径启动单个节点。
    • @javanna 非常感谢!
    猜你喜欢
    • 2015-06-24
    • 2016-06-08
    • 1970-01-01
    • 1970-01-01
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多