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.jianshu.com/p/31e6ae0f17e2) -
zookeeper
集群搭建(http://www.jianshu.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>
如图:
- 单机版到此完毕,只需将整个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执行如图: ![上传solr配置到zookeeper.png](http://upload-images.jianshu.io/upload_images/1972470-729c6fb7a740bc95.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 进入zookeeper终端查看数据,成功如下图: ![查看solr配置上传zookeeper是否成功.png](http://upload-images.jianshu.io/upload_images/1972470-37d89a38e977e759.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 修改所有节点下
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>如图: ![修改ip及port.png](http://upload-images.jianshu.io/upload_images/1972470-7715353b092b2f4a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 为
solr
指定zookeeper
服务器地址vim /usr/local/solrcloud/tomcat/bin/catalina.sh
添加如下配置:JAVA_OPTS="-DzkHost=zookeeper145:2181,zookeeper146:2181,zookeeper147:2181"
如图:
- 配置完毕,启动
tomcat
,预览,如果集群部署成功则出现下图红色方框菜单项
如图:
- 有了上面单机版的基础,接下来就是节点之间通过
- 安装
- 创建一个
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
如图所示:
- 删除collection
- 参数说明
参数名 | 说明 |
---|---|
name | 创建集合名称 |
numShards | 指定集合Shard的数量 |
replicationFactor | 指定每个Shard副本数量 |
action | 操作(创建(CREATE)、删除(DELETE)、重载(RELOAD)) |
好了,到此为止,一切都结束了
作者:逐暗者 (转载请注明出处)