0

我在不同的 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。

4

1 回答 1

1

更新:

在两个配置文件中进行以下操作:

discovery.zen.ping.unicast.hosts: ["master_node_ip"]

如果上面提供的设置就是全部。然后您应该将集群名称添加到您的设置中。

cluster.name: my_cool_cluster_name

于 2013-07-25T18:21:10.583 回答