Elasticsearch集群初始化

时间:2014-10-13 22:31:12

标签: elasticsearch

我刚刚设置了一个3节点的Elasticsearch集群,每个节点都有共同的设置(粘贴在帖子的末尾)

但是,当我启动主节点并尝试获取群集状态甚至检查其中任何一个节点是否已启动时,我会得到503作为状态代码。此外,关闭(在任何节点上)都不起作用。

有人可以告诉我这里我做错了什么吗?节点1上的日志文件说:

  

[ESNode1]观察者:来自群集服务的超时通知。超时设置[30s],自开始以来的时间[30s]

来自elasticsearch.yml配置文件的片段:

节点1

  

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

节点2

  

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

节点3

  

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

谢谢!

2 个答案:

答案 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连接,则不会形成群集。