我刚刚设置了一个3节点的Elasticsearch集群,每个节点都有共同的设置(粘贴在帖子的末尾)
但是,当我启动主节点并尝试获取群集状态甚至检查其中任何一个节点是否已启动时,我会得到503作为状态代码。此外,关闭(在任何节点上)都不起作用。
有人可以告诉我这里我做错了什么吗?节点1上的日志文件说:
[ESNode1]观察者:来自群集服务的超时通知。超时设置[30s],自开始以来的时间[30s]
来自elasticsearch.yml配置文件的片段:
cluster.name:myCluster
node.name:ESNode1
node.master:true
node.data:true
discovery.zen.minimum_master_nodes:2
discover.zen.ping.timeout:20s #just for good measure
discovery.zen.ping.multicast.enabled:false
cluster.name:myCluster
node.name:ESNode2
node.master:true
node.data:true
discovery.zen.minimum_master_nodes:2
discover.zen.ping.timeout:20s
discovery.zen.ping.multicast.enabled:false
cluster.name:myCluster
node.name:ESNode3
node.master:false
node.data:true
discovery.zen.minimum_master_nodes:2
discover.zen.ping.timeout:20s
discovery.zen.ping.multicast.enabled:false
谢谢!
答案 0 :(得分:6)
您配置最小主节点为2.这意味着您的群集至少需要两个主节点。这很好,但是,设置discovery.zen.ping.multicast.enabled:false这很难开始工作。此设置意味着您不会查找其他节点。因此,您应该使用设置主机手动配置节点。
您可以在此处找到更多信息: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-discovery-zen.html#unicast
在一台计算机上运行的三个节点的示例: discovery.zen.ping.unicast.hosts:[“127.0.0.1:9300”,“127.0.0.1:9301”,“127.0.0.1:9302”]
答案 1 :(得分:0)
禁用多播发现意味着发现ping只会发送到特定地址。地址/主机是在discovery.zen.ping.unicast.hosts中指定的。
请注意,可以指定单个地址。当节点加入时,它会发现集群中的所有节点,并且可以直接开始与它们通信。
澄清使用Jettros的例子:
discovery.zen.unicast.hosts:["127.0.0.1:9300"]
将导致绑定到9301和9302的节点仅ping 9300.
如果9301首先加入,它'已经知道'集群中的所有其他节点(仅9300)。
如果9302随后加入,它将会知道9301,反之亦然。 如果9301和9302无法与9300连接,则不会形成群集。