ElasticSearch:节点没有数据角色,但有碎片数据



我设置了elasticsearch集群,但没有明确设置角色(node.roles:(。现在,我已经返回并编辑了其中一个节点配置,并将其分配给master(node.roles:[master].

然而,当我重新启动时,我得到了错误:

java.lang.IollegalStateException:节点没有数据角色,但有碎片数据:[/opt/elasticsearch/data/notes

如何明确设置角色?

默认情况下,节点获得master和data角色。因此,如果您已经启动了它,它应该已经包含了一些数据,因此,除非您首先将它包含的所有数据移动到另一个节点上,否则无法转换为主节点。

您首先需要通过运行此命令(使用节点的正确IP地址(来停用节点,以便移动它在其他数据节点上包含的所有数据:

PUT _cluster/settings
{
"transient" : {
"cluster.routing.allocation.exclude._ip" : "10.0.0.1"
}
}

当节点不再包含任何数据时,您可以关闭它,将node.roles更改为master并重新启动它。

最新更新