Description
Suppose you want to create a small 4 node cluster (2x2, two shards, each replicated), each on it's own machine.
It'd be nice to use the same script in /etc/init.d to start them all, but it's hard to come up with a set of arguments that works for both the first and subsequent nodes.
When MANUALLY starting them, the arguments for the first node are different than for subsequent nodes:
Node A like this:
-DzkRun -DnumShards=2 -Dbootstrap_confdir=./solr/collection1/conf -Dcollection.configName=MyConfig -jar start.jar
Vs. the other 3 nodes, B, C, D:
-DzkHost=nodeA:9983 -jar start.jar
But if you combine them, you either still have to rely on Node A being up first, and have all nodes reference it:
-DzkRun -DzkHost=nodeA:9983 -DnumShards=2 -Dbootstrap_confdir=./solr/collection1/conf -Dcollection.configName=MyConfig
OR you can try to specify the address of all 4 machines, in all 4 startup scripts, which seems logical but doesn't work:
-DzkRun -DzkHost=nodeA:9983,nodeB:9983,nodeC:9983,nodeD:9983 -DnumShards=2 -Dbootstrap_confdir=./solr/collection1/conf -Dcollection.configName=MyConfig
This gives an error:
org.apache.solr.common.SolrException log
SEVERE: null:java.lang.IllegalArgumentException: port out of range:-1
This thread suggests a possible change in syntax, but doesn't seem to work (at least with the embedded ZooKeeper)
Syntax:
-DzkRun -DzkHost=nodeA:9983,nodeB:9983,nodeC:9983,nodeD:9983/solrroot -DnumShards=2 -Dbootstrap_confdir=./solr/collection1/conf -Dcollection.configName=MyConfig
Error:
SEVERE: Could not start Solr. Check solr/home property and the logs
Feb 12, 2013 1:36:49 PM org.apache.solr.common.SolrException log
SEVERE: null:java.lang.NumberFormatException: For input string: "9983/solrroot"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
So:
- There needs to be some syntax that all nodes can run, even if it requires listing addresses (or multicast!)
- And then clear documentation about suggesting external ZooKeeper to be used for production (list being maintained in SOLR-4444)