[root@localhost ~]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat01
[root@localhost ~]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat02
[root@localhost ~]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat03
[root@localhost ~]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat04
因爲是在一臺電腦上搭建的僞集羣 索引這幾個tomcat啓動的時候 必須的都把端口號修改一下 要不就端口衝突;
四個個tomcat端口號都修改:端口號修改的時候 要有一定的規律
例如
第一個tomcat所涉及的端口號:8005 8080 8009 可以修改8105 8180 8109
第二個tomcat所涉及的端口號:8005 8080 8009 可以修改8205 8280 8209
第三個tomcat所涉及的端口號:8005 8080 8009 可以修改8305 8380 8309
第四個tomcat所涉及的端口號:8005 8080 8009 可以修改8305 8380 8309
見tomcat與solr單機版整合的這編文章
搭建僞集羣 建議先把這篇文章的單機版整合搭建一下
http://blog.csdn.net/weixin_36695293/article/details/77171202
[root@localhost solr-cloud]# cp -r ../solr/tomcat/webapps/solr/ tomcat02/webapps/
[root@localhost solr-cloud]# cp -r ../solr/tomcat/webapps/solr/ tomcat03/webapps/
[root@localhost solr-cloud]# cp -r ../solr/tomcat/webapps/solr/ tomcat04/webapps/
[root@localhost solr-cloud]# cp -r ../solr/solrhome/ solrhome01---這是之前整合好的solrhome
[root@localhost solr-cloud]# cp -r ../solr/solrhome/ solrhome02
[root@localhost solr-cloud]# cp -r ../solr/solrhome/ solrhome03
[root@localhost solr-cloud]# cp -r ../solr/solrhome/ solrhome04
編寫solrhome01下面的solr.xml
<solr>
<solrcloud>
<str name="host">192.168.25.127</str>
<int name="hostPort">8180</int>
<str name="hostContext">${hostContext:solr}</str>
<int name="zkClientTimeout">${zkClientTimeout:30000}</int>
<bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
</solrcloud>
<shardHandlerFactory name="shardHandlerFactory"
class="HttpShardHandlerFactory">
<int name="socketTimeout">${socketTimeout:0}</int>
<int name="connTimeout">${connTimeout:0}</int>
</shardHandlerFactory>
</solr>
每一個solrhome都要修改
修改此路tomcat下面solr工程下面的web.xml
[root@localhost solr-cloud]# vi tomcat01/webapps/solr/WEB-INF/web.xml
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/usr/local/solr-cloud/solrhome01</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
做完以上步驟 tomcat中的solr和solrhome已經建立了聯繫
現在solr和zookeeper建立聯繫
修改tomcat/bin目錄下面的catalina.sh
在這個註釋上面Execute The Requested Command
JAVA_OPTS="-DzkHost=192.168.25.127:2182,192.168.25.127:2183,192.168.25.127:2184"
# ----- Execute The Requested Command -----------------------------------------
其他三個tomcat都要改;
下面要使用一個工具把solrhome下面的conf下面的配置文件上牀到zookeeper 讓zookeeper管理
在root根目錄下面的解壓文件 solr-4.10.3/exampel/srcipts/ cloud-scriptscd/zkcli.sh
在[root@localhost cloud-scripts]# 目錄下面執行下面的命令
.zkcli.sh -zkhost 192.168.25.127:2182,192.168.25.127:2183,192.168.25.127:2184 -cmd upconfig
-confdir /usr/local/solr-cloud/solrhome01/collection1/conf/ -confname myconf
連接zookeeper的命令
[root@localhost bin]# ./zkCli.sh -server 192.168.25.127:2182
把四個tomcat全部重新啓動
訪問http://192.168.25.127:8480/solr/
如果 剛打開的時候 彈出一個 There exits no core ~cloud 先不要着急 換個瀏覽器試一下 如果不行 請參考linux下tomcat和solr服務器整合筆記 步驟有木有落下什麼
集羣分片命令
http://192.168.25.127:8180/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2
刪除collection命令