我正在创建一个包含多个(2)节点但仍未检测到节点的群集。
节点:-1
cluster.name: mycluster
node.name: NODE1
node.master: true
node.data: true
index.number_of_shards: 5
index.number_of_replicas: 1
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["10.0.2.4"]
节点:-2
cluster.name: mycluster
node.name: NODE2
node.master: false
node.data: true
index.number_of_shards: 5
index.number_of_replicas: 1
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["10.0.2.15"]
首先使用此配置启动主站(node1),然后启动从站(node2),但未检测到从站
我能够从master ping 10.0.2.15,反之亦然。
答案 0 :(得分:1)
您必须启用multicast discovery
。注释配置discovery.zen.ping.multicast.enabled: false
或在elasticsearch.yml
答案 1 :(得分:1)
除了指定单播主机属性外,还需要在每个主机的bind_host
文件中设置elasticsearch.yml
属性并重新启动它们。这是因为ES binds to localhost by default可以在您发布的日志中看到,即请参阅下面的大胆日志
[2016-01-29 18:18:56,280] [INFO] [cluster.service] [Pixx] new_master {Pixx} {5wg_P7RdT0ykX1q4SAajCA} { 127.0.0.1 } { 127.0 .0.1:9300 } {master = true},原因:zen-disco-join(elections_as_master,[0]加入收到)
所以在节点1上,你需要这个:
network.bind_host: 10.0.2.15
在节点2上你需要这个:
network.bind_host: 10.0.2.4
答案 2 :(得分:0)
这个答案只是因为第一个谷歌搜索结果让我来到这里。
ES版本5.1.2
network.host:0.0.0.0
帮助我让节点看到对方。
更多信息:https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-network.html