我在不同的 VPS 上有两个 Elastic Search,它们有自己的主机名,但我无法让它们相互复制。它们都是 0.90.2 版本。
我的设置是:
cluster.name: mycluster
name.name: "nodeA"
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: ["nodeB.example.com"]
和:
cluster.name: mycluster
name.name: "nodeB"
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: ["nodeA.example.com"]
当我尝试启动 nodeB 实例时,结果是:
[INFO ][discovery.zen] [nodeB]
failed to send join request to master
[[nodeA][IZFgtrTPSISQR7VklS3www][inet[/*.*.*.*:9300]]{master=true}],
reason [org.elasticsearch.ElasticSearchTimeoutException:
Timeout waiting for task.]
所以沟通是因为nodeB知道其他人的名字是'nodeA',但是我错过了什么或者我可以检查什么?
更新:
不幸的是,这原来是 nodeB 上的服务器问题,与 ES 无关。
作为记录,上述设置工作正常,节点A的单播设置毫无意义,因为节点B不是主节点,只有节点B需要了解节点A。