Re: Setup Solr Multiserver Environment

2015-07-07 Thread Erick Erickson
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

2015-07-07 Thread Adrian Liew
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

2015-07-06 Thread Erick Erickson
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