Vidisha
Vidisha

Reputation: 80

Elasticsearch Tribe node configuration

I am new to Elasticsearch and am trying to setup a tribe node in Elasticsearch. Sorry, if the question is not very smart but I need help.

I am using Elasticserach 2.3.1 running on RHEL Server 6.6 and Java 1.7.8. I have 2 clusters and have 1 master node and 1 data node in each cluster.

When I try to set up and start a tribe node in cluster 1, I get the error :

My Tribe node settings are :

 tribe:
 sample-cluster1:
 cluster.name: sample-cluster1
 discovery.zen.ping.unicast.hosts: ["host1", "host2"]
 discovery.zen.ping.multicast.enabled: false 
 sample-cluster2: 
 cluster.name: sample-cluster2
 discovery.zen.ping.unicast.hosts: ["host3", "host4"]
 discovery.zen.ping.multicast.enabled: false 

I get the following error :

Exception in thread "main" SettingsException[Failed to load settings from [elasticsearch.yml]]; nested: ElasticsearchParseException[duplicate settings key [cluster.name] found at line number [34], column number [16], previous value [sample-cluster1], current value [sample-cluster2]];
Likely root cause: ElasticsearchParseException[duplicate settings key [cluster.name] found at line number [34], column number [16], previous value [sample-cluster1], current value [sample-cluster2]]
        at org.elasticsearch.common.settings.loader.XContentSettingsLoader.serializeValue(XContentSettingsLoader.java:151)
        at org.elasticsearch.common.settings.loader.XContentSettingsLoader.serializeObject(XContentSettingsLoader.java:109)
        at org.elasticsearch.common.settings.loader.XContentSettingsLoader.load(XContentSettingsLoader.java:67)
        at org.elasticsearch.common.settings.loader.XContentSettingsLoader.load(XContentSettingsLoader.java:45)
        at org.elasticsearch.common.settings.loader.YamlSettingsLoader.load(YamlSettingsLoader.java:46)
        at org.elasticsearch.common.settings.Settings$Builder.loadFromStream(Settings.java:1071)
        at org.elasticsearch.common.settings.Settings$Builder.loadFromPath(Settings.java:1058)
        at org.elasticsearch.node.internal.InternalSettingsPreparer.prepareEnvironment(InternalSettingsPreparer.java:88)
        at org.elasticsearch.bootstrap.Bootstrap.initialSettings(Bootstrap.java:202)
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:241)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)

However, if I change the configuration in the second cluster setting, there is no error and the server starts up:

My modified settings :

sample-cluster1:
 cluster.name: sample-cluster1
 discovery.zen.ping.unicast.hosts: ["host1", "host2"]
 discovery.zen.ping.multicast.enabled: false 
 sample-cluster2: 
 cluster.name1: sample-cluster2
 discovery.zen.ping.unicast.hosts1: ["host3", "host4"]
 discovery.zen.ping.multicast.enabled1: false 

I am not sure what I am missing in the first configuaration and if the second configuation is correct. I am assuming that I cannot change elasticsearch keys:

cluster.name to cluster.name1
discovery.zen.ping.unicast.hosts to discovery.zen.ping.unicast.hosts1
discovery.zen.ping.multicast.enabled to discovery.zen.ping.multicast.enabled1

Upvotes: 0

Views: 1982

Answers (1)

Vidisha
Vidisha

Reputation: 80

Found the fix and it works now. It was a silly mistake. The solution was that I had to add an extra whitespace for all the parameters in the second cluster configuration.

sample-cluster1:
 cluster.name: sample-cluster1
 discovery.zen.ping.unicast.hosts: ["host1", "host2"]
 discovery.zen.ping.multicast.enabled: false 
sample-cluster2: 
  cluster.name: sample-cluster2
  discovery.zen.ping.unicast.hosts: ["host3", "host4"]
  discovery.zen.ping.multicast.enabled: false 

Upvotes: 0

Related Questions