Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Solr Wiki" for change 
notification.

The "SolrCloudTomcat" page has been changed by varunsrivastava:
http://wiki.apache.org/solr/SolrCloudTomcat?action=diff&rev1=1&rev2=2

- Describe SolrCloudTomcat here.
+ Example setup for 3 node solr cloud cluster with 3 node Zookeeper ensemble
  
+ Solr Cloud machines : s1.solr.com,s2.solr.com,s3.solr.com 
+ 
+ Zookeeper machines: z1.com, z2.com, z3.com
+ 
+ The default directory for all the setup /home/myuser/
+ 
+ 
+ 
+ First bring up zookeeper ensemble
+ 
+ --------------------------------------------------
+ 
+ Do following steps for z1.com,z2.com,z3.com to setup zookeeper
+ 
+ 1) Download a ZooKeeper from http://hadoop.apache.org/zookeeper/releases.html
+ 
+ 2)   Untar the zookeeper inside zookeeper directory. tar -xf -C 
/home/myuser/zookeeper/
+ 
+ 3) Edit zookeeper config file
+ 
+ vi /home/myuser/zookeeper/conf/zoo.cfg
+ and put something similar to 
+ 
+  
+ 
+ 
+ 
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+ 15
+ 16
+ 17
+ 18
+ 19
+ 20
+ 21
+ 22
+ 23
+ 24
+ 25
+ 26
+ 27
+ 28
+ 29
+ 30
+ # The number of milliseconds of each tick
+ tickTime=2000
+  
+ # The number of ticks that the initial synchronization phase can take
+ initLimit=10
+  
+ # The number of ticks that can pass between
+ # sending a request and getting an acknowledgement
+ syncLimit=5
+  
+ # the directory where the snapshot is stored.
+ # Choose appropriately for your environment
+ dataDir=/home/myuser/zookeeper/data/
+  
+ # the port at which the clients will connect
+ clientPort=2181
+  
+ # the directory where transaction log is stored.
+ # this parameter provides dedicated log device for ZooKeeper
+ dataLogDir=/home/myuser/zookeeper/log/
+  
+ # ZooKeeper server and its port no.
+ # ZooKeeper ensemble should know about every other machine in the ensemble
+ # specify server id by creating 'myid' file in the dataDir
+ # use hostname instead of IP address for convenient maintenance
+ server.1=z1.com:2888:3888
+ server.2=z2.com:2888:3888
+ server.3=z3.com:2888:3888
+  
+ 4) For each server create an id file in data directory and put appropriate id 
in the file. For example 
+ 
+ vi /home/myuser/zookeeper/data/myid and write just 1 for z1.com in the file. 
+ For z2.com server write 2 in its myid and 3 in z3.com myid file. myid file is 
used to identify the zookeeper server.
+ 
+ 4)Now start zookeeper for each server.
+ # cd /home/myuser/zookeeper/bin/
+   # ./zkServer.sh start
+ 
+ 
+ 
+ 
+ Setup tomcat 
+ 
+ ---------------------
+ 
+ Now once zookeeper cluster is ready lets setup Solr Cloud machines : 
s1.solr.com,s2.solr.com,s3.solr.com 
+ 
+ Lets assume all the 3 solr machines have tomcat installed in 
/home/myuser/tomcat/
+ 
+ 
+ 
+ First lets load solr config from one of the solr machine
+ 
+ 1) Get solr.war to s1.solr.com machine
+ 
+ 2) Now lets copy solr.war i to solr-war folder – cp solr.war 
/home/myuser/solr-war/
+ 
+ 3) cd  /home/myuser/solr-war/
+ 
+ 4) jar xvf solr.war 
+ 
+ 5) cp WEB-INF/lib/*  /home/myuser//solr-war-lib/
+ 
+ 6) get all the solrconfig files like solrconfig.xml, schema.xml etc in 
/home/myuser/solr-config/
+ 
+ 7) Upload config to zookeeper using solr zookeeper cli 
+ 
+ java -classpath .:/home/myuser/solr-war-lib/* org.apache.solr.cloud.ZkCLI 
-cmd upconfig -zkhost z1.com:2181,z2.com:2181,z3.com:2181 -confdir 
/home/myuser/solr-config -confname myconf
+ 8) Link uploaded config with target collection ( assume new collection name 
will be mycollection)
+ 
+ java -classpath .:/home/myuser/solr-war-lib/* org.apache.solr.cloud.ZkCLI 
-cmd linkconfig -collection mycollection -confname myconf -zkhost 
z1.com:2181,z2.com:2181,z3.com:2181 
+ 
+ 
+ Now in all the solr machines do following
+ 
+ 9) create /home/myuser/solr-cores/ for storing the solr index 
+ 
+ 10) create solr.xml  in solr-cores
+ 
+ <?xml version="1.0" encoding="UTF-8" ?>
+ <solr persistent="true" sharedLib="lib">
+ <cores adminPath="/admin/cores" zkClientTimeout="20000" hostPort="8080" 
hostContext="solr">
+ </cores>
+ </solr>
+ 
+ 11) Start the tomcat with following jvm options
+ 
+ -DzkHost=z1.com:2181,z2.com:2181,z3.com:2181
+ 
+ 12) Put solr.war in /home/myuser/tomcat/webapps/ and restart tomcat
+ 
+ 13 ) edit  /home/myuser/tomcat/webapps/solr/META-INF/context.xml and restart 
tomcat
+ 
+ <?xml version="1.0" encoding="utf-8"?>
+ <Context docBase="solr.war" debug="0" crossContext="false">
+ <Environment name="solr/home" type="java.lang.String" 
value="/home/myuser/solr-cores" override="true"/>
+ </Context>
+ 
+ 14) curl 
'http://s1.solr.com:8080/solr/admin/collections?action=CREATE&name=mycollection&numShards=3&replicationFactor=1'
+ 
+ 
+ 
+ 

Reply via email to