elasticsearch 2.1.1 - 无法建立集群

时间:2015-12-21 20:40:29

标签: elasticsearch

我遇到了ES 2.1.1的问题,我启动的每个节点都以master为主,我无法建立实际的集群。基本上,我最终得到3个集群,每个节点一个节点,而不是一个3节点集群。如果我使用相同的配置文件启动ES 1.4.2,这不是问题。

认为我患有裂脑问题,我启动了3个节点,甚至还有

discovery.zen.minimum_master_nodes: 2

在我的配置中,但它没有任何区别。没有节点知道任何其他节点,也没有选择主节点。它确实等待其他节点并且不会选择自己作为主节点,但它从未发现任何其他节点加入。我假设没有发送ping。

每个节点都有相同的配置文件,其中包含" node.name"对于每个节点都是唯一的,它在ES 1.4.2上都可以正常工作。不知道如何使它在ES 2.1.1上运行。

完整配置文件如下所示:

cluster.name: my_test_cluster
node.name: "my_node1" (diff for each node)
discovery.zen.ping.timeout: 30s
network.host: _non_loopback:ipv4_
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping.multicast.enabled: true

(最后两行作为消除裂脑的一种尝试而添加,这是其无法正常工作的原因之一。)

除了" MasterNotDiscoveredException [等待[30s]]"之外,日志不会显示任何错误。当我执行CURL查询以检查群集的状态/运行状况时。这是预期的。

任何人都有任何想法为什么两者之间的行为差​​异以及如何获得2.1.1。工作

根据下面的建议,我在配置文件中包含了node.host的条目,但行为没有改变。

1 个答案:

答案 0 :(得分:1)

您还需要从Elasticsearch 2.0开始设置network.host for each node

我建议使用_non_loopback:ipv4__non_loopback:ipv6_。如果您在AWS中运行,则the discovery-ec2 plugin has separate options that are specific to that environment

如果不设置此选项,则默认仅使用_local_,(正如文档说明)将其设置为回送地址,例如127.0.0.1::1

根据您的评论,看起来节点位于不同的计算机上,因此您还需要指定主机列表(无论如何都要指定它们的子集,但是对于3,它可以指定所有节点):

discovery.zen.ping.unicast.hosts: ["host1", "host2"]

从ES 2.x开始,默认情况下禁用多播,因此它将不再发现网络上的其他节点。