我在不同的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无关。
对于记录,上述设置工作正常,nodeA的单播设置没有意义,因为nodeB不是主节点,nodeB需要知道nodeA。
答案 0 :(得分:1)
<强>更新:强>
在两个配置文件中进行以下操作:
discovery.zen.ping.unicast.hosts: ["master_node_ip"]
如果提供上面的设置就是全部。然后,您应该将群集名称添加到您的设置中。
<德尔> cluster.name: my_cool_cluster_name
德尔>