Re: Setup Solr Multiserver Environment
You're conflating creating collections with starting Solr instances. Ports are not associated with replicas, they're associated with instances of Solr. So what you're really trying to do is start three Solr instances with different ports. Collections and replicas will come later. Have you tried just using the canned example and examining the results? Just start Solr with the '-e cloud' example and take a look at the results, that should shed some light on the structure. Of course you need the -c and -z options too Best, Erick On Tue, Jul 7, 2015 at 2:08 AM, Adrian Liew adrian.l...@avanade.com wrote: Thanks Eric. I have a scenario whereby I will like to setup a minimal 1 shard with 3 replica all of which each replica sits in its one machine. I also have an external ZK ensemble setup with zk1, zk2 and zk3. A simple example: I create say collection1 in the following order to satisfy the scenario above using just solr.cmd. (note I am using a windows server do perform the below as this is a requirement) 1. Create collection1 with numshards of 1 and with port 5000 which points to say example/cloud/node1/solr 2. Next create the replica for collection1 (without specifying numshards this time as it will tell Solr to create a replica) with port 5001 which points to say example/cloud/node2/solr 3. Repeat step 2 and point this to say example/cloud/node3/solr with port 5002 I am currently stuck at Step 1 as I only managed to create the collection with Shard 1 pointing at port 5000. However, how can I go about creating the replica for that existing collection, collection1? Best regards, Adrian -Original Message- From: Erick Erickson [mailto:erickerick...@gmail.com] Sent: Tuesday, July 7, 2015 1:25 AM To: solr-user@lucene.apache.org Subject: Re: Setup Solr Multiserver Environment How are you starting this? WARNING: I haven't worked on a windows box for some time so beware my advice ;). You shouldn't have to edit these at all if you're using the start scripts (now preferred). -h host -p port -s dir All this does is set an env variable that gets substituted in for things like ${jetty.port:5002}. That syntax really says Use the env var 'jetty.port' if it's defined, otherwise default to 5002 Try bin/solr.cmd --help and see what the options are.. Best, Erick On Mon, Jul 6, 2015 at 1:41 AM, Adrian Liew adrian.l...@avanade.com wrote: Has anyone tried setting up a multiserver environment for Solr on a Windows machine? I was just wondering how you will go about say setting up a single shard with 3 replicas (one of them is the leader) using the solr.cmd or infact java.cmd on three different virtual machines for example. Note, I can only run solr.cmd on Windows Machine. I won't be able to use shell scripting using the sh command if I wanted to have an automated script to startup. This is the way I see it for SolrCloud scenario: 1 replica = 1 machine So for a three server instance/node setup with a single shard, it will be: Shard 1: Replica 1 (this is the Leader for the shard for example) : solrnode1.cloudapp.net:5000 Replica 2: solrnode1.cloudapp.net:5001 Replica 3: solrnode1.cloudapp.net:5002 May it be possible to go about changing the hostport in the solr.xml of each of those solr server instance/nodes above? So like each of them will be pointing to like a directory called solr/node1, solr/node2 and solr/node3. So the only place which makes sense to configure the host addresses is modifying the sections below: The default section that comes with the solr.xml is within solrcloud section is: str name=host${host:}/str int name=hostPort${jetty.port:8983}/int str name=hostContext${hostContext:solr}/str So in my case for example, can I do the following? Replica 1: str name=hostsolrnode1.cloudapp.net/str int name=hostPort${jetty.port:5000}/int str name=hostContext${hostContext:solr}/str Replica 2: str name=host solrnode1.cloudapp.net /str int name=hostPort${jetty.port:5001}/int str name=hostContext${hostContext:solr}/str Replica 3: str name=host solrnode1.cloudapp.net /str int name=hostPort${jetty.port:5002}/int str name=hostContext${hostContext:solr}/str Any suggestions are welcomed. Regards, Adrian Best regards, Adrian Liew | Consultant Application Developer Avanade Malaysia Sdn. Bhd..| Consulting Services (: Direct: +(603) 2382 5668 È: +6010-2288030
RE: Setup Solr Multiserver Environment
Thanks Eric. I have a scenario whereby I will like to setup a minimal 1 shard with 3 replica all of which each replica sits in its one machine. I also have an external ZK ensemble setup with zk1, zk2 and zk3. A simple example: I create say collection1 in the following order to satisfy the scenario above using just solr.cmd. (note I am using a windows server do perform the below as this is a requirement) 1. Create collection1 with numshards of 1 and with port 5000 which points to say example/cloud/node1/solr 2. Next create the replica for collection1 (without specifying numshards this time as it will tell Solr to create a replica) with port 5001 which points to say example/cloud/node2/solr 3. Repeat step 2 and point this to say example/cloud/node3/solr with port 5002 I am currently stuck at Step 1 as I only managed to create the collection with Shard 1 pointing at port 5000. However, how can I go about creating the replica for that existing collection, collection1? Best regards, Adrian -Original Message- From: Erick Erickson [mailto:erickerick...@gmail.com] Sent: Tuesday, July 7, 2015 1:25 AM To: solr-user@lucene.apache.org Subject: Re: Setup Solr Multiserver Environment How are you starting this? WARNING: I haven't worked on a windows box for some time so beware my advice ;). You shouldn't have to edit these at all if you're using the start scripts (now preferred). -h host -p port -s dir All this does is set an env variable that gets substituted in for things like ${jetty.port:5002}. That syntax really says Use the env var 'jetty.port' if it's defined, otherwise default to 5002 Try bin/solr.cmd --help and see what the options are.. Best, Erick On Mon, Jul 6, 2015 at 1:41 AM, Adrian Liew adrian.l...@avanade.com wrote: Has anyone tried setting up a multiserver environment for Solr on a Windows machine? I was just wondering how you will go about say setting up a single shard with 3 replicas (one of them is the leader) using the solr.cmd or infact java.cmd on three different virtual machines for example. Note, I can only run solr.cmd on Windows Machine. I won't be able to use shell scripting using the sh command if I wanted to have an automated script to startup. This is the way I see it for SolrCloud scenario: 1 replica = 1 machine So for a three server instance/node setup with a single shard, it will be: Shard 1: Replica 1 (this is the Leader for the shard for example) : solrnode1.cloudapp.net:5000 Replica 2: solrnode1.cloudapp.net:5001 Replica 3: solrnode1.cloudapp.net:5002 May it be possible to go about changing the hostport in the solr.xml of each of those solr server instance/nodes above? So like each of them will be pointing to like a directory called solr/node1, solr/node2 and solr/node3. So the only place which makes sense to configure the host addresses is modifying the sections below: The default section that comes with the solr.xml is within solrcloud section is: str name=host${host:}/str int name=hostPort${jetty.port:8983}/int str name=hostContext${hostContext:solr}/str So in my case for example, can I do the following? Replica 1: str name=hostsolrnode1.cloudapp.net/str int name=hostPort${jetty.port:5000}/int str name=hostContext${hostContext:solr}/str Replica 2: str name=host solrnode1.cloudapp.net /str int name=hostPort${jetty.port:5001}/int str name=hostContext${hostContext:solr}/str Replica 3: str name=host solrnode1.cloudapp.net /str int name=hostPort${jetty.port:5002}/int str name=hostContext${hostContext:solr}/str Any suggestions are welcomed. Regards, Adrian Best regards, Adrian Liew | Consultant Application Developer Avanade Malaysia Sdn. Bhd..| Consulting Services (: Direct: +(603) 2382 5668 È: +6010-2288030
Re: Setup Solr Multiserver Environment
How are you starting this? WARNING: I haven't worked on a windows box for some time so beware my advice ;). You shouldn't have to edit these at all if you're using the start scripts (now preferred). -h host -p port -s dir All this does is set an env variable that gets substituted in for things like ${jetty.port:5002}. That syntax really says Use the env var 'jetty.port' if it's defined, otherwise default to 5002 Try bin/solr.cmd --help and see what the options are.. Best, Erick On Mon, Jul 6, 2015 at 1:41 AM, Adrian Liew adrian.l...@avanade.com wrote: Has anyone tried setting up a multiserver environment for Solr on a Windows machine? I was just wondering how you will go about say setting up a single shard with 3 replicas (one of them is the leader) using the solr.cmd or infact java.cmd on three different virtual machines for example. Note, I can only run solr.cmd on Windows Machine. I won't be able to use shell scripting using the sh command if I wanted to have an automated script to startup. This is the way I see it for SolrCloud scenario: 1 replica = 1 machine So for a three server instance/node setup with a single shard, it will be: Shard 1: Replica 1 (this is the Leader for the shard for example) : solrnode1.cloudapp.net:5000 Replica 2: solrnode1.cloudapp.net:5001 Replica 3: solrnode1.cloudapp.net:5002 May it be possible to go about changing the hostport in the solr.xml of each of those solr server instance/nodes above? So like each of them will be pointing to like a directory called solr/node1, solr/node2 and solr/node3. So the only place which makes sense to configure the host addresses is modifying the sections below: The default section that comes with the solr.xml is within solrcloud section is: str name=host${host:}/str int name=hostPort${jetty.port:8983}/int str name=hostContext${hostContext:solr}/str So in my case for example, can I do the following? Replica 1: str name=hostsolrnode1.cloudapp.net/str int name=hostPort${jetty.port:5000}/int str name=hostContext${hostContext:solr}/str Replica 2: str name=host solrnode1.cloudapp.net /str int name=hostPort${jetty.port:5001}/int str name=hostContext${hostContext:solr}/str Replica 3: str name=host solrnode1.cloudapp.net /str int name=hostPort${jetty.port:5002}/int str name=hostContext${hostContext:solr}/str Any suggestions are welcomed. Regards, Adrian Best regards, Adrian Liew | Consultant Application Developer Avanade Malaysia Sdn. Bhd..| Consulting Services (: Direct: +(603) 2382 5668 È: +6010-2288030