近日,单台机器,8个节点的es集群,8个节点都正常started了,但是就是无法形成集群,后来看日志,日志中出现一堆的MasterNotDiscoveredException这种异常,完整日志如下:
[2016-04-27 15:08:22,445][DEBUG][action.admin.cluster.health] [es.10.16.66.152.0] no known master node, scheduling a retry
[2016-04-27 15:08:52,457][INFO ][rest.suppressed ] /_cat/health Params: {h=node.total}
MasterNotDiscoveredException[waited for [30s]]
at org.elasticsearch.action.support.master.TransportMasterNodeAction$4.onTimeout(TransportMasterNodeAction.java:160)
at org.elasticsearch.cluster.ClusterStateObserver$ObserverClusterStateListener.onTimeout(ClusterStateObserver.java:239)
at org.elasticsearch.cluster.service.InternalClusterService$NotifyTimeout.run(InternalClusterService.java:630)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
查看了每一个节点的elasticsearch.yml这个文件之后,发现其中只有一个节点的node.master这个配置为true,而其中discovery.zen.minimum_master_nodes这个配置的值却是5,而有资格成为主节点的只有一个,所以永远也形成不了集群啊。
结果就是要么把其他节点的node.master都设置为true,要么discovery.zen.minimum_master_nodes将这个配置改为1。
希望兄弟姐妹们遇到此类问题先检查下这个,如果没问题就看是否是其他原因导致的。