本文只写具体的搭建过程,具体原理请看官网文档。国内博客都是基本上都是通过tomcat搭建的solr,本文是通过内部集成的jetty容器搭建。
一、zookeeper集群搭建
1、安装JAVA环境,版本1.8
2、下载zookeeper地址 https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/
3、zookeeper集群安装方式自己百度吧,都差不多。
4、zookeeper一个重要的脚本,zkCli.sh,通过它可以交互式的对zookeeper集群里的配置自由操作
二、solrcloud集群搭建
1、solr下载
https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/5.5.5/
2、solr配置文件
2.1)在/solr-5.5.5/server/solr/configsets下有配置文件例子,可以复制为配置文件
cp -r configsets/data_driven_schema_configs test
2.2)solrconfig.xml、managed-schema、data-config.xml这个三个文件涉及配置(https://www.cnblogs.com/zhangtianyuan/p/6946456.html)
solrconfig.xml(https://wiki.apache.org/solr/DataImportHandler#Data_Import_Request_Handler)
https://wiki.apache.org/solr/DIHQuickStart
managed-schema,字段文件,老版本是schema.xml,这个两个的区别可以自行参考官方手册,前者是通过API的方式创建字段相对安全(此处修改后只会更改zookeeper集群中的配置文件,上传之前的配置文件是不会被修改的,这个可以在WEB页面创建后去看未上传之前的配置文件是否更改,通过zookeeper来管理配置文件,所以上述中zkCli.sh这个就很重要),后者可以通过API中添加字段,添加之后配置文件中也会出现,也可以在配置文件中修改,当然前者也可以在文件中修改(后者配置文件会被修改是因为不是solrcloud模式。。)。
data-config.xml这个是在solrconfig.xml中配置的查询语句等。
2.3)从mysql中导入数据需要添加jar包
1、从mysql官网中下载一个mysql-connector-java-5.1.25.zip压缩包,解压出一个mysql-connector-java-5.1.25-bin.jar包,将它分别copy到solr-5.5.5/server/lib和solr-5.5.5/server/solr-webapp/webapp/WEB-INF/lib当中(只copy到第一个路径应该就可以) 2、将solr-dataimporthandler-5.5.5.jar和solr-dataimporthandler-extras-5.5.5.jar从solr-5.5.5/dist/文件夹下copy到solr-5.5.1/server/solr-webapp/webapp/WEB-INF/lib当中(只copy第一个文件应该就可以)
2.4)上传solrcloud配置文件。
/opt/soft/solr-5.5.5/server/scripts/cloud-scripts/zkcli.sh -zkhost 192.168.60.175:2181,192.168.60.188:2181,192.168.60.177:2181 -cmd upconfig -confdir /opt/soft/solr-5.5.5/server/solr/test2/conf -confname test2
2.5)通过cloud模式开启solr,在/var/solr/node1下要配置solr.xml,这个可以从solr根目录下复制。需要修改host和port用于将信息注册到zookeeper。
/opt/soft/solr-5.5.5/bin/solr start -p 8983 -c -z 192.168.60.175:2181,192.168.60.188:2181,192.168.60.177:2181 -s /var/solr/node1
2.6)创建collection,这个collection就相当于非solrcloud模式下的core。
/opt/soft/solr-5.5.5/bin/solr create -c test2 -d /opt/soft/solr-5.5.5/server/solr/test2/conf -n test2 -s 3 -rf 2 -port 8983
此时solrcloud就搞好了。是不是比tomcat简单。