solrcloud 集群搭建(集成tomcat)
環境:JDK1.7.79 、 zookeeper3.4.8 、 solr(4.10.3) 、 tomcat7
zookeeper | tomcat | solr |
---|---|---|
192.168.58.145 | 192.168.58.145:8080 | 192.168.58.145 |
192.168.58.146 | 192.168.58.146:8080 | 192.168.58.146 |
192.168.58.147 | 192.168.58.147:8080 | 192.168.58.147 |
192.168.58.148:8080 | 192.168.58.148 |
-
jdk
安裝(http://www.lxweimin.com/p/31e6ae0f17e2) -
zookeeper
集群搭建(http://www.lxweimin.com/p/47bccd4306d1) -
solr
集群搭建- 安裝
solr
(和單機版一致)- 創建
solrcloud
,solrhome
文件夾mkdir /usr/local/solrcloud && cd /usr/local/solrcloud && mkdir solrhome
- 解壓tomcat
、solr
到solrcloud
下
>cd /usr/local/software/ && tar -zxvf apache-tomcat-7.0.68.tar.gz -C /usr/local/solrcloud/ && tar -zxvf solr-4.10.3.tgz.tar -C /usr/local/solrcloud/ && cd /usr/local/solrcloud/ && mv apache-tomcat-7.0.68 tomcat && mv solr-4.10.3 solr && ll
- 拷貝solr-4.10.3.war
到tomcat
中webapps
下,解壓solr-4.10.3.war
>cd /usr/local/solrcloud/tomcat/webapps && cp /usr/local/solrcloud/solr/dist/solr-4.10.3.war . && unzip solr-4.10.3.war -d solr && rm -rf solr-4.10.3.war
- 拷貝solr
日志jar
到tomcat
中solr
下lib
>cp /usr/local/solrcloud/solr/example/lib/ext/* /usr/local/solrcloud/tomcat/webapps/solr/WEB-INF/lib/
- 拷貝log4j.properties
文件到tomcat
中solr
下classes
>mkdir /usr/local/solrcloud/tomcat/webapps/solr/WEB-INF/classes && cp /usr/local/solrcloud/solr/example/resources/log4j.properties /usr/local/solrcloud/tomcat/webapps/solr/WEB-INF/classes/
- 拷貝Solr Home
數據文件
>cp -ri /usr/local/solrcloud/solr/example/solr/* /usr/local/solrcloud/solrhome/
- 編輯solr
中web.xml
文件,指定solrhome
> 添加如下配置:
>xml <env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>/usr/local/solrcloud/solrhome</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
如圖:
設置solrhome.png
- 單機版到此完畢,只需將整個solrcloud
拷貝到其他節點,即可完成其他節點的單機版
- 啟動tomcat
,預覽
- 創建
-
solr
集群部署- 有了上面單機版的基礎,接下來就是節點之間通過
zookeeper
關聯了 - 啟動
zookeeper
集群,上傳solrhome配置文件到zookeeper
zkServer.sh start
java -classpath .:/usr/local/solrcloud/tomcat/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost zookeeper145:2181,zookeeper146:2181,zookeeper147:2181 -confdir /usr/local/solrcloud/solrhome/collection1/conf -confname myconf執行如圖:  進入zookeeper終端查看數據,成功如下圖: 
- 修改所有節點下
solrhome
中的solr.xml
文件修改
host
及hostPort
<str name="host">192.168.58.145</str> //當前節點ip
<int name="hostPort">8080</int>//tomcat端口
<str name="hostContext">${hostContext:solr}</str>
<int name="zkClientTimeout">${zkClientTimeout:30000}</int>
<bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
</solrcloud>如圖: 
- 為
solr
指定zookeeper
服務器地址vim /usr/local/solrcloud/tomcat/bin/catalina.sh
添加如下配置:JAVA_OPTS="-DzkHost=zookeeper145:2181,zookeeper146:2181,zookeeper147:2181"
如圖:
solr配置zookeeper的-DzkHost.png- 配置完畢,啟動
tomcat
,預覽,如果集群部署成功則出現下圖紅色方框菜單項
如圖:
solrcloud集群.png
- 有了上面單機版的基礎,接下來就是節點之間通過
- 安裝
- 創建一個
collection
(兩片,每片一主一備),創建一個collection
(一片,一主三備)在瀏覽器中輸入以下
url
,回車
http://192.168.58.145:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2> ```java // 一主三備 http://192.168.58.145:8080/solr/admin/collections?action=CREATE&name=collection1&numShards=1&replicationFactor=3
如圖所示:
solrcloud主備collection.png - 刪除collection
- 參數說明
參數名 | 說明 |
---|---|
name | 創建集合名稱 |
numShards | 指定集合Shard的數量 |
replicationFactor | 指定每個Shard副本數量 |
action | 操作(創建(CREATE)、刪除(DELETE)、重載(RELOAD)) |
好了,到此為止,一切都結束了
作者:逐暗者 (轉載請注明出處)