我已经安装了Elasticsearch 2.2.3并在2个节点的集群中进行了配置
节点1(elasticsearch.yml)
cluster.name: my-cluster node.name: node1 bootstrap.mlockall: true discovery.zen.ping.unicast.hosts: ["ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com", "ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com"] discovery.zen.minimum_master_nodes: 1 discovery.zen.ping.multicast.enabled: false indices.fielddata.cache.size: "30%" indices.cache.filter.size: "30%" node.master: true node.data: true http.cors.enabled: true script.inline: false script.indexed: false network.bind_host: 0.0.0.0
节点2(elasticsearch.yml)
cluster.name: my-cluster node.name: node2 bootstrap.mlockall: true discovery.zen.ping.unicast.hosts: ["ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com", "ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com"] discovery.zen.minimum_master_nodes: 1 discovery.zen.ping.multicast.enabled: false indices.fielddata.cache.size: "30%" indices.cache.filter.size: "30%" node.master: false node.data: true http.cors.enabled: true script.inline: false script.indexed: false network.bind_host: 0.0.0.0
如果我知道curl -XGET 'http://localhost:9200/_cluster/state?pretty'我有:
curl -XGET 'http://localhost:9200/_cluster/state?pretty'
{ "error" : { "root_cause" : [ { "type" : "master_not_discovered_exception", "reason" : null } ], "type" : "master_not_discovered_exception", "reason" : null }, "status" : 503 }
进入节点1的日志有:
[2016-06-22 13:33:56,167][INFO ][cluster.service ] [node1] new_master {node1}{Vwj4gI3STr6saeTxKkSqEw}{127.0.0.1}{127.0.0.1:9300}{master=true}, reason: zen-disco-join(elected_as_master, [0] joins received) [2016-06-22 13:33:56,210][INFO ][http ] [node1] publish_address {127.0.0.1:9200}, bound_addresses {[::]:9200} [2016-06-22 13:33:56,210][INFO ][node ] [node1] started [2016-06-22 13:33:56,221][INFO ][gateway ] [-node1] recovered [0] indices into cluster_state
改为进入节点2的日志:
[2016-06-22 13:34:38,419][INFO ][discovery.zen ] [node2] failed to send join request to master [{node1}{Vwj4gI3STr6saeTxKkSqEw}{127.0.0.1}{127.0.0.1:9300}{master=true}], reason [RemoteTransportException[[node2][127.0.0.1:9300][internal:discovery/zen/join]]; nested: IllegalStateException[Node [{node2}{_YUbBNx9RUuw854PKFe1CA}{127.0.0.1}{127.0.0.1:9300}{master=false}] not master for join request]; ]
哪里出错?
我解决了这一行:
network.publish_host: ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com
每个elasticsearch.yml配置文件的主机名都必须带有此行
elasticsearch.yml