我是Elasticsearch的新手,我想在一台机器上设置一个高度可用的Elasticsearch集群,以测试和学习如何使用Elasticsearch。我希望当主节点发生故障时,其他节点中的一个节点将接管并成为主节点。在我的机器上,我设置了一个由3个节点、一个主节点和两个数据节点组成的Elasticsearch集群,但是当我停止主节点时,没有其他节点接管并成为主节点,这是我对这三个节点的配置( elasticsearch的使用版本是7.9.2):
# master node config.
cluster.name:demo-cluster
node.name: "es-node-1"
node.master: true
node.data: false
discovery.zen.minimum_master_nodes: 2# data node 1 config.
cluster.name:demo-cluster
node.name: "es-node-2"
node.master: false
node.data: true
discovery.zen.minimum_master_nodes: 2# data node 2 config.
cluster.name:demo-cluster
node.name: "es-node-3"
node.master: false
node.data: true
discovery.zen.minimum_master_nodes: 2有谁有主意吗?
发布于 2021-03-19 21:20:36
只有一个节点有配置node.master: true,所以只有这个节点有资格做主节点,如果这个节点失败了,你就不会有另一个主节点,你的集群也不会工作。
您需要将所有三个节点都设置为node.master: true,这样,如果主节点出现故障,集群中的其余两个节点将选择谁将成为新的主节点。
此外,您使用的是7.X版本,在此版本中,发现设置已更改且discovery.zen.minimum_master_nodes已弃用,因此您应使用discovery.seed_hosts和cluster.initial_master_nodes,如documentation中所述。
discover.seed_hosts: ["es-node-1", "es-node-2", "es-node-3"]
cluster.initial_master_nodes: ["es-node-1", "es-node-2", "es-node-3"]为此,您的所有节点都应该在配置文件中包含node.master: true。这将允许您的集群在丢失一个节点的情况下正常工作。
https://stackoverflow.com/questions/66707269
复制相似问题