/
"./solr
"), you need to use ZooKeeper "chroot
".chroot
" is not mandatory but it's considered as a best practice.chroot
" znode in ZooKeeper.zkCli.sh
" to create your "chroot
" znode (ie: "/solr
"):$ ${ZK_HOME}/bin/zkCli.sh -server localhost:2181 create /solr
solrhost1
", and "solrhost2
"zkhost1
", "zkhost2
", and "zkhost3
"solr-9.8.1.zip
" in the folder you want to install Solr: /opt/solr-9.8.1
$ unzip solr-9.8.1.zip -d /opt/
$ ln -s /opt/solr-9.8.1/ /opt/solr
$ chmod -R 755 /opt/solr-9.8.1/ $ sudo chown -R mtitek:mtitek /opt/solr-9.8.1/
$ sudo chown -R mtitek:mtitek /opt/solr
${SOLR_HOME}
(or solr.solr.home
) represents the path of the Solr home directory: /opt/solr/server/solr
${SOLR_ROOT}
represents the path of the Solr installation folder: /opt/solr/
${SOLR_HOME}/solr.xml
"${SOLR_HOME}
must contain a solr.xml
file, otherwise Solr will fail to start.solrhost1
", "solrhost2
")$ /opt/solr/bin/solr start -c -z "zkhost1:2181,zkhost2:2181,zkhost3:2181/solr"
-z "zkhost1:2181,zkhost2:2181,zkhost3:2181/solr"
from the above command if you have defined "ZK_HOST
" in "solr.in.sh
".$ /opt/solr/bin/solr start -c -z "zkhost1:2181"
/solr
" (the znode "/solr
" has to be created first in ZooKeeper):$ /opt/solr/bin/solr start -c -z "zkhost1:2181/solr"
$ /opt/solr/bin/solr start -c -z "zkhost1:2181,zkhost2:2181,zkhost3:2181/solr"
$ /opt/solr/bin/solr start -c -m 1g -z "zkhost1:2181,zkhost2:2181,zkhost3:2181/solr" -a "-Xmx1024m -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044"
chroot
", make sure that the Solr znode is created first in ZooKeeper ("/solr
").ERROR (main) [ ] o.a.s.c.SolrCore null:org.apache.solr.common.cloud.ZooKeeperException: A chroot was specified in ZkHost but the znode doesn't exist. localhost:2181/solr at org.apache.solr.core.ZkContainer.initZooKeeper(ZkContainer.java:112) at org.apache.solr.core.CoreContainer.load(CoreContainer.java:623) at org.apache.solr.servlet.SolrDispatchFilter.createCoreContainer(SolrDispatchFilter.java:261) at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:181) at org.eclipse.jetty.servlet.FilterHolder.initialize(FilterHolder.java:136) at org.eclipse.jetty.servlet.ServletHandler.lambda$initialize$0(ServletHandler.java:750)
_default
" configuration to ZooKeeper ("${SOLR_HOME}/configsets/_default
").-z
" parameter, go down, Solr will lose connection with ZooKeeper even if the ZooKeeper ensemble contains other instances that are up and running.-m 512m
(default)-z "zkhost1:2181,zkhost2:2181,zkhost3:2181/solr"
solrhost1
", "solrhost2
")$ /opt/solr/bin/solr stop
$ /opt/solr/bin/solr stop -p 8983
/solr
" in ZooKeeper.solr-9.8.1.zip
" file to 2 locations of your choice:/opt/solr-i1
/opt/solr-i2
8983
)$ /opt/solr-i1/bin/solr start -c -z "localhost:2181,localhost:2182,localhost:2183/solr" -p 8983
8984
)$ /opt/solr-i2/bin/solr start -c -z "localhost:2181,localhost:2182,localhost:2183/solr" -p 8984
$ /opt/solr-i1/bin/solr stop -p 8983
$ /opt/solr-i2/bin/solr stop -p 8984
/solr
" in ZooKeeper.solr-9.8.1.zip
" file to a location of your choice:/opt/solr
solr1
, solr2
, ...$ mkdir /opt/solr/solr1 $ mkdir /opt/solr/solr2
solr1
, solr2
, ...),
you need to copy the "solr.xml
" file from "/opt/solr/server/solr
".$ cp /opt/solr/server/solr/solr.xml /opt/solr/solr1 $ cp /opt/solr/server/solr/solr.xml /opt/solr/solr2
solr1
, solr2
, ...),
you need to create a "logs
" directory.$ mkdir /opt/solr/solr1/logs $ mkdir /opt/solr/solr2/logs
/opt/solr/bin/solr
:if [ -z "$SOLR_LOGS_DIR" ]; then #SOLR_LOGS_DIR="$SOLR_SERVER_DIR/logs" SOLR_LOGS_DIR="${SOLR_HOME}/logs" fi
solr.cmd
:
IF [%SOLR_LOGS_DIR%] == [] ( @REM set "SOLR_LOGS_DIR=%SOLR_SERVER_DIR%\logs" set "SOLR_LOGS_DIR=%SOLR_HOME%\logs" )
8983
)$ /opt/solr/bin/solr start -c -z "localhost:2181,localhost:2182,localhost:2183/solr" -p 8983 -s "/opt/solr/solr1"
8984
)$ /opt/solr/bin/solr start -c -z "localhost:2181,localhost:2182,localhost:2183/solr" -p 8984 -s "/opt/solr/solr2"
$ /opt/solr/bin/solr stop -p 8983
$ /opt/solr/bin/solr stop -p 8984
$ /opt/solr-i1/bin/solr stop -all