Elasticsearch集群初始化

7
我刚刚设置了一个由3个节点组成的 Elasticsearch 集群,每个节点都有共同的设置(在帖子末尾粘贴)。
然而,当我启动我的主节点并尝试获取集群状态或甚至检查任何一个节点是否已经上线时,我会得到503作为状态码。此外,关闭任何节点都不起作用。
请问有人能告诉我我在这里做错了什么吗?节点1上的日志文件如下:
[ESNode1] observer: timeout notification from cluster service. timeout setting [30s], time since start [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个回答

6
您需要配置最小主节点数为2。这意味着您的集群至少需要两个主节点。虽然如此,但是如果与设置discovery.zen.ping.multicast.enabled: false一起使用,这将很难运行。这个设置意味着您不会寻找其他节点。所以,您应该使用设置hosts手动配置节点。
您可以在这里找到更多信息: 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"]

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一起加入,则不会形成群集。

我有一个永久EC2实例,其中运行着ES,并拥有一个静态IP。我构建了一个包含ES和单播发现设置为永久实例IP的AMI。可以启动任意数量的AMI实例 - 它们会自动加入集群。 - AssHat_

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接