我正在尝试部署2节点elasticsearch集群。
我有2个虚拟机,如下所示:
VM1-> 10.20.1.4(CentOS7)
VM2-> 10.20.1.5(CentOS7)
我已经在上述两个VM中都安装了java8作为先决条件。
从以下链接下载了elasticsearch tar:
https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.1.0/elasticsearch-2.1.0.tar.gz
在VM1(10.20.1.4)中,我在elasticsearch.yml文件中进行了以下配置
cluster.name: TestCluster
node.name: "node1"
node.master: true
transport.tcp.port: 9300
http.port: 9200
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["10.20.1.4:9300", "10.20.1.5:9300"]
在VM2(10.20.1.5)中,我在elasticsearch.yml文件中进行了以下配置
cluster.name: TestCluster
node.name: "node2"
transport.tcp.port: 9300
http.port: 9200
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["10.20.1.4:9300", "10.20.1.5:9300"]
但是使用这种配置,当我启动elasticsearch实例时,两个实例都作为一个单独的主节点出现。他们无法形成集群,因为他们无法发现它们。
我也在下面的zen单播版本中进行了尝试,但没有一个对我有用
discovery.zen.ping.unicast.hosts: ["10.20.1.4:9200", "10.20.1.5:9200"]
OR
discovery.zen.ping.unicast.hosts: ["10.20.1.4", "10.20.1.5"]
OR
discovery.zen.ping.unicast.hosts: ["node1", "node2"]
有人可以帮我完成这个Elasticsearch集群工作。
最佳答案
这是因为ES服务器is bound to localhost by default,即在您的配置中您可以看到此network.bind_host: _local_
他们做出了这个决定,以防止ES集群与外界不希望的主机一起形成。
相反,您应该在每个主机上设置以下设置:
network.host: 10.20.1.4 # on VM1
和
network.host: 10.20.1.5 # on VM2
请注意,设置
network.host
会将network.bind_host
和network.publish_host
都设置为相同的IP地址。
关于elasticsearch - Elasticsearch集群实例显示为单个主节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34290109/