共计 3566 个字符,预计需要花费 9 分钟才能阅读完成。
上一章讲了 Solr 单机版的搭建 http://www.linuxidc.com/Linux/2017-03/141401.htm,本章将讲解 sole 集群的搭建。solr 集群的搭建需要使用到 zookeeper,搭建参见 Zookeeper 集群的安装
一、solr 实例的搭建
1. tomcat安装
这里我们需要 4 个 tomcat, 分别是 tomcat1,2,3,4
同时修改 tomcat1,2,3,4 的端口为 8080-8083。保证两个 tomcat 可以正常运行不发生端口冲突。
2. 解压 solr-4.10.3.tar.gz 压缩包。从压缩包中复制 /solr-4.10.3/dist/solr-4.10.3.war 到 tomcat1,并重命名为 solr.war。
3. 启动 tomcat, 解压 solr.war。解压成功后关闭 tomcat, 删除 solr.war
4. 将 solr 日志相关的 jar 包拷贝到解压的 solr 项目的 lib 包中
5. 创建 solrhome 文件
这里直接拷贝单机版中创建的 solrhome
6. 修改 tomcat1- 4 中的 solr 的 web.xml 对应的 env-entry-value 值为 /usr/local/solrcloud/solrhome1-4,指定对应的 solrhome
7. 其他的配置参见 Solr 单机版的搭建 http://www.linuxidc.com/Linux/2017-03/141401.htm
二、solr 集群的搭建
1. 把 solrhome 中的配置文件上传到 zookeeper 集群。使用 zookeeper 的客户端上传。
使用 solr 安装包中的 /opt/mysoft/solr-4.10.3/example/scripts/cloud-scripts 中的 zkcli.sh
运行命令
./zkcli.sh -zkhost 192.168.198.130:2181,192.168.198.130:2182,192.168.198.130:2183 -cmd upconfig -confdir /usr/local/solrcloud/solrhome1/collection1/conf -confname myconf
查看运行是否成功,使用 zookeeper 中的脚本
2. 修改 solrhome1- 4 下的 solr.xml 文件,指定当前实例运行的 ip 地址及端口号 8080-8083。
3. 修改每一台 solr 的 tomcat 的 bin 目录下 catalina.sh 文件中加入 DzkHost 指定 zookeeper 服务器地址:
Java_OPTS="-DzkHost=192.168.198.130:2181,192.168.198.130:2182,192.168.198.130:2183"
4. 重启 tomcat
查看运行结果
5. 创建一个两片的 collection,每片是一主一备
http://192.168.198.130:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2
回到主界面查看
6. 删除 collection1
http://192.168.198.130:8080//solr/admin/collections?action=DELETE&name=collection1
查看主界面
三、Java 测试代码
@Test
public void testAddDocument() throws Exception {//创建一个和 solr 集群的连接
//参数就是 zookeeper 的地址列表,使用逗号分隔
String zkHost = "192.168.198.130:2181,192.168.198.130:2182,192.168.198.130:2183";
CloudSolrServer solrServer = new CloudSolrServer(zkHost);
//设置默认的 collection
solrServer.setDefaultCollection("collection2");
//创建一个文档对象
SolrInputDocument document = new SolrInputDocument();
//向文档中添加域
document.addField("id", "test001");
document.addField("item_title", "测试商品");
//把文档添加到索引库
solrServer.add(document);
//提交
solrServer.commit();}
@Test
public void queryDocument() throws Exception{//创建一个和 solr 集群的连接
//参数就是 zookeeper 的地址列表,使用逗号分隔
String zkHost = "192.168.198.130:2181,192.168.198.130:2182,192.168.198.130:2183";
CloudSolrServer solrServer = new CloudSolrServer(zkHost);
//设置默认的 collection
solrServer.setDefaultCollection("collection2");
solrServer.deleteByQuery("*:*");
solrServer.commit();}
四、spring 集成
<bean id="cloudSolrServer" class="org.apache.solr.client.solrj.impl.CloudSolrServer">
<constructor-arg name="zkHost" value="192.168.25.154:2181,192.168.25.154:2182,192.168.25.154:2183"></constructor-arg>
<property name="defaultCollection" value="collection2"></property>
</bean>
java 代码使用方法不变,因为 SolrServer 是 CloudSolrServer 的父类
PDF 文档可以到 Linux 公社资源站下载:
—————————————— 分割线 ——————————————
免费下载地址在 http://linux.linuxidc.com/
用户名与密码都是www.linuxidc.com
具体下载目录在 /2017 年资料 / 3 月 / 5 日 /Solr 集群 solrCloud 的搭建 /
下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm
—————————————— 分割线 ——————————————
更多 Solr 相关教程见以下内容:
Solr3.6.1 在 Tomcat6 下的环境搭建 http://www.linuxidc.com/Linux/2013-01/77664.htm
Apache Solr: 安装和运行 http://www.linuxidc.com/Linux/2016-12/138527.htm
在 Ubuntu 12.04 LTS 上通过 Tomcat 部署 Solr 4 http://www.linuxidc.com/Linux/2012-09/71158.htm
Solr 实现 Low Level 查询解析(QParser)http://www.linuxidc.com/Linux/2012-05/59755.htm
Solr6.0.0 + Tomcat8 配置问题 http://www.linuxidc.com/Linux/2016-05/131845.htm
基于 Solr 3.5 搭建搜索服务器 http://www.linuxidc.com/Linux/2012-05/59743.htm
Solr 3.5 开发应用教程 PDF 高清版 http://www.linuxidc.com/Linux/2013-10/91048.htm
Solr 4.0 部署实例教程 http://www.linuxidc.com/Linux/2013-10/91041.htm
Solr 的详细介绍:请点这里
Solr 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/141402.htm