2015-02-12 44 views
6

我有一台运行elasticsearch和kibana的服务器。我添加了第二个节点来形成一个集群,但只希望第二个节点从主节点复制数据。Elasticsearch集群 - 没有已知的主节点,安排重试

根据对如何做到这一点有限的文件,我遇到了问题,在第二与下面的错误

[DEBUG][action.admin.indices.get ] [Match] no known master node, scheduling a retry 

我无法确定最佳配置两台服务器来实现这一点,但这个是我迄今所做的:

主节点配置:

cluster.name: elasticsearch 
node.master: true 
path.data: /local00/elasticsearch/ 
path.work: /local00/el_temp/ 
network.host: 0.0.0.0 
http.port: 9200 
script.disable_dynamic: true 

节点2

cluster.name: elasticsearch 
node.master: false 
node.data: true 
index.number_of_shards: 5 
index.number_of_replicas: 1 
path.data: /local00/elasticsearch/ 
path.work: /local00/el_temp/ 
network.host: 0.0.0.0 
http.port: 9200 
script.disable_dynamic: true 

我假设我缺少额外的配置的地方。任何帮助都感激不尽。

回答

6

得到它具有以下变化在这里工作How to set up ES cluster?回答:

节点1:

cluster.name: mycluster 
node.name: "node1" 
node.master: true 
node.data: true 
discovery.zen.ping.multicast.enabled: false 
discovery.zen.ping.unicast.hosts: ["node1.example.com"] 

节点2:

cluster.name: mycluster 
node.name: "node2" 
node.master: false 
node.data: true 
discovery.zen.ping.multicast.enabled: false 
discovery.zen.ping.unicast.hosts: ["node1.example.com"] 
1

如果你试图连接额外的节点已经存在的胚胎干请确保此节点也具有与其他节点相同的ES插件。如果没有 - 点不能被完全连接(其他节点可以显示它连接,但HTTP的命令,不能在其上推出),以ES集群错误,如:

[2016-07-21 11:56:59,564][DEBUG][action.admin.cluster.health] [dev-marvel1] no known master node, scheduling a retry 
[2016-07-21 11:57:05,313][INFO ][rest.suppressed   ] /_cluster/health Params: {pretty=true} 
MasterNotDiscoveredException[waited for [30s]] 
     at org.elasticsearch.action.support.master.TransportMasterNodeAction$4.onTimeout(TransportMasterNodeAction.java:154) 
     at org.elasticsearch.cluster.ClusterStateObserver$ObserverClusterStateListener.onTimeout(ClusterStateObserver.java:239) 
     at org.elasticsearch.cluster.service.InternalClusterService$NotifyTimeout.run(InternalClusterService.java:574) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:745) 

在我的情况的问题是有执照的插件。删除后,一切都变好了。

+0

这解决了我的问题!我现有的节点有新节点没有的奇迹插件。新节点显示在节点列表中,当查看kopf或头在现有节点上时,但在查看新节点的这些插件时,群集中的其他旧节点不显示,并且新节点不会获得任何碎片。现在的问题是,我可以将插件添加到新节点来修复它,但是我看不到一种方法可以在没有完全重新启动集群的情况下从整个集群中删除它们。任何节点,我删除它们然后重新启动将无法正确加入,所以我实际上不能删除它们... – redstonemercury 2018-01-30 00:03:31