lucene/solr/cloud-dev/solrcloud-start.sh

73 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# To run on hdfs, try something along the lines of:
# export JAVA_OPTS="-Dsolr.directoryFactory=solr.HdfsDirectoryFactory -Dsolr.lock.type=hdfs -Dsolr.hdfs.home=hdfs://localhost:8020/solr -Dsolr.hdfs.confdir=/etc/hadoop_conf/conf"
numServers=$1
numShards=$2
baseJettyPort=8900
baseStopPort=9900
zkAddress=localhost:9900
die () {
echo >&2 "$@"
exit 1
}
[ "$#" -eq 2 ] || die "2 arguments required, $# provided, usage: solrcloud-start.sh [numServers] [numShards]"
cd ..
for (( i=1; i <= $numServers; i++ ))
do
rm -r -f example$i
done
rm -r -f dist
rm -r -f build
rm -r -f example/solr/zoo_data
rm -r -f example/solr/collection1/data
rm -f example/example.log
ant -f ../build.xml clean
ant example dist
rm -r example/solr-webapp/*
unzip example/webapps/solr.war -d example/solr-webapp/webapp
for (( i=1; i <= $numServers; i++ ))
do
echo "create example$i"
cp -r -f example example$i
done
rm -r -f examplezk
cp -r -f example examplezk
cp core/src/test-files/solr/solr-no-core.xml examplezk/solr/solr.xml
rm -r -f examplezk/solr/collection1/core.properties
cd examplezk
stopPort=1313
jettyPort=8900
exec -a jettyzk java -Xmx512m $JAVA_OPTS -Djetty.port=$jettyPort -DhostPort=$jettyPort -DzkRun -DzkRunOnly=true -DSTOP.PORT=$stopPort -DSTOP.KEY=key -jar start.jar 1>examplezk.log 2>&1 &
cd ..
# upload config files
java -classpath "example1/solr-webapp/webapp/WEB-INF/lib/*:example/lib/ext/*" org.apache.solr.cloud.ZkCLI -cmd bootstrap -zkhost $zkAddress -solrhome example1/solr
cd example
for (( i=1; i <= $numServers; i++ ))
do
echo "starting example$i"
cd ../example$i
stopPort=`expr $baseStopPort + $i`
jettyPort=`expr $baseJettyPort + $i`
exec -a jetty java -Xmx1g $JAVA_OPTS -DnumShards=$numShards -Djetty.port=$jettyPort -DzkHost=$zkAddress -DSTOP.PORT=$stopPort -DSTOP.KEY=key -jar start.jar 1>example$i.log 2>&1 &
done