org.elasticsearch.discovery.MasterNotDiscoveredException异常解决
问题
我新下载的elasticSearch,启动之后又warn,如下所示:
[2019-07-01T23:21:52,915][WARN ][o.e.c.c.ClusterFormationFailureHelper] [cgj-1] master not discovered yet, this node has not previously joined a bootstrapped (v7+) cluster, and [cluster.initial_master_nodes] is empty on this node: have discovered []; discovery will continue using [] from hosts providers and [{cgj-1}{SpsiDM4yTIWn8jfxY2n0qg}{nedE7WtERZG62If9_H9zTA}{127.0.0.1}{127.0.0.1:9300}{ml.machine_memory=6250930176, xpack.installed=true, ml.max_open_jobs=20}] from last-known cluster state; node term 0, last-accepted version 0 in term 0
我没有特别关注他,然后等待ES启动之后,我执行了一条命令,命令行报错:
[2019-07-01T23:21:58,476][WARN ][r.suppressed ] [cgj-1] path: /_mapping, params: {}
org.elasticsearch.discovery.MasterNotDiscoveredException: null
at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction$4.onTimeout(TransportMasterNodeAction.java:259) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.cluster.ClusterStateObserver$ContextPreservingListener.onTimeout(ClusterStateObserver.java:322) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.cluster.ClusterStateObserver$ObserverClusterStateListener.onTimeout(ClusterStateObserver.java:249) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.cluster.service.ClusterApplierService$NotifyTimeout.run(ClusterApplierService.java:555) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:681) [elasticsearch-7.0.0.jar:7.0.0]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_201]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_201]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_201]
紧接着,我执行了put命令,此时在命令行出现了NodeClosedException
如下报错:
[2019-07-01T23:22:45,548][WARN ][r.suppressed ] [cgj-1] path: /study/doc/f1, params: {index=study, id=f1, type=doc}
org.elasticsearch.node.NodeClosedException: node closed {cgj-1}{SpsiDM4yTIWn8jfxY2n0qg}{nedE7WtERZG62If9_H9zTA}{127.0.0.1}{127.0.0.1:9300}{ml.machine_memory=6250930176, xpack.installed=true, ml.max_open_jobs=20}
at org.elasticsearch.action.bulk.TransportBulkAction$BulkOperation$2.onClusterServiceClose(TransportBulkAction.java:500) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.cluster.ClusterStateObserver$ContextPreservingListener.onClusterServiceClose(ClusterStateObserver.java:315) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.cluster.ClusterStateObserver$ObserverClusterStateListener.onClose(ClusterStateObserver.java:234) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.cluster.service.ClusterApplierService.addTimeoutListener(ClusterApplierService.java:273) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.cluster.ClusterStateObserver.waitForNextChange(ClusterStateObserver.java:173) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.cluster.ClusterStateObserver.waitForNextChange(ClusterStateObserver.java:117) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.cluster.ClusterStateObserver.waitForNextChange(ClusterStateObserver.java:109) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.action.bulk.TransportBulkAction$BulkOperation.retry(TransportBulkAction.java:492) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.action.bulk.TransportBulkAction$BulkOperation.handleBlockExceptions(TransportBulkAction.java:476) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.action.bulk.TransportBulkAction$BulkOperation.doRun(TransportBulkAction.java:353) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.action.bulk.TransportBulkAction.executeBulk(TransportBulkAction.java:547) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.action.bulk.TransportBulkAction$1.onFailure(TransportBulkAction.java:277) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.action.support.TransportAction$1.onFailure(TransportAction.java:74) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction$4.onClusterServiceClose(TransportMasterNodeAction.java:252) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.cluster.ClusterStateObserver$ContextPreservingListener.onClusterServiceClose(ClusterStateObserver.java:315) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.cluster.ClusterStateObserver$ObserverClusterStateListener.onClose(ClusterStateObserver.java:234) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.cluster.service.ClusterApplierService.doStop(ClusterApplierService.java:174) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.common.component.AbstractLifecycleComponent.stop(AbstractLifecycleComponent.java:79) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.cluster.service.ClusterService.doStop(ClusterService.java:108) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.common.component.AbstractLifecycleComponent.stop(AbstractLifecycleComponent.java:79) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.node.Node.stop(Node.java:763) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.node.Node.close(Node.java:786) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.core.internal.io.IOUtils.close(IOUtils.java:103) [elasticsearch-core-7.0.0.jar:7.0.0]
at org.elasticsearch.core.internal.io.IOUtils.close(IOUtils.java:61) [elasticsearch-core-7.0.0.jar:7.0.0]
at org.elasticsearch.bootstrap.Bootstrap$4.run(Bootstrap.java:183) [elasticsearch-7.0.0.jar:7.0.0]
Suppressed: org.elasticsearch.node.NodeClosedException: node closed {cgj-1}{SpsiDM4yTIWn8jfxY2n0qg}{nedE7WtERZG62If9_H9zTA}{127.0.0.1}{127.0.0.1:9300}{ml.machine_memory=6250930176, xpack.installed=true, ml.max_open_jobs=20}
at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction$4.onClusterServiceClose(TransportMasterNodeAction.java:252) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.cluster.ClusterStateObserver$ContextPreservingListener.onClusterServiceClose(ClusterStateObserver.java:315) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.cluster.ClusterStateObserver$ObserverClusterStateListener.onClose(ClusterStateObserver.java:234) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.cluster.service.ClusterApplierService.doStop(ClusterApplierService.java:174) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.common.component.AbstractLifecycleComponent.stop(AbstractLifecycleComponent.java:79) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.cluster.service.ClusterService.doStop(ClusterService.java:108) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.common.component.AbstractLifecycleComponent.stop(AbstractLifecycleComponent.java:79) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.node.Node.stop(Node.java:763) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.node.Node.close(Node.java:786) [elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.core.internal.io.IOUtils.close(IOUtils.java:103) [elasticsearch-core-7.0.0.jar:7.0.0]
at org.elasticsearch.core.internal.io.IOUtils.close(IOUtils.java:61) [elasticsearch-core-7.0.0.jar:7.0.0]
at org.elasticsearch.bootstrap.Bootstrap$4.run(Bootstrap.java:183) [elasticsearch-7.0.0.jar:7.0.0]
解决
在yml配置文件中有两个跟discovery有关的配置,如下所示:
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when this node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
discovery.seed_hosts: ["127.0.0.1"]
#
# Bootstrap the cluster using an initial set of master-eligible nodes:
#
cluster.initial_master_nodes: ["cgj-1"]
#
# For more information, consult the discovery and cluster formation module documentation.
discovery.seed_hosts
当这个节点启动的时候,会读取该配置项,这个配置项里是一个IP地址的字符串数组,用于发现其他节点。
我在这里名写入的是我当前节点的IP地址
cluster.initial_master_nodes
这个配置项是初始化集群时候,用作初始化为master的节点。配置项的值为节点名称的字符串数组
我在这里写入的是我当前节点的名称,也就是
node.name
的值。
至此,问题解决!