CentOS 安装SolrCloud

1.什么是SolrCloud

SolrCloud(solr )Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud来满足这些需求。

 SolrCloud是基于SolrZookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心。

它有几个特色功能:

1)集中式的配置信息

2)自动容错

3)近实时搜索

4)查询时自动负载均衡

2. Solr集群的结构

3. Solr集群的搭建

本教程的这套安装是单机版的安装,所以采用伪集群的方式进行安装,如果是真正的生产环境,将伪集群的ip改下就可以了,步骤是一样的。

SolrCloud结构图如下:

需要三个zookeeper节点

四个solr节点。

使用伪分布式实现solr集群。需要三个zookeeper实例,4tomcat实例,可以在一台虚拟机上模拟。建议虚拟机1G以上内存。

4.Zookeeper集群的搭建 http://www.cnblogs.com/zuge/p/5756154.html

5. Solr实例的搭建

第一步:创建4tomcat实例,修改其端口。8080-8083

[root@localhost solrcloud]# cp -r tomcat1 tomcat2
[root@localhost solrcloud]# cp -r tomcat1 tomcat3
[root@localhost solrcloud]# cp -r tomcat1 tomcat4
[root@localhost solrcloud]# vi tomcat2/conf/server.xml 改为8081
[root@localhost solrcloud]# vi tomcat3/conf/server.xml 改为8082
[root@localhost solrcloud]# vi tomcat4/conf/server.xml 改为8083

可以自己写个脚本

 

第二步:解压solr-4.10.3.tar.gz压缩包。从压缩包中复制solr.wartomcat

[root@localhost admin]# tar -zxvf solr-4.10.3.tgz.tgz 
[root@localhost admin]# tar -zxvf apache-tomcat-7.0.47.tar.gz 
[root@localhost admin]# cp apache-tomcat-7.0.47 /usr/local/solrcloud/tomcat1 -r
[root@localhost dist]# cp solr-4.10.3.war /usr/local/solrcloud/tomcat/webapps/solr.war

第三步:启动tomcat解压war包。把solr-4.10.3目录下example目录下的关于日志相关的jar包添加到solr工程中。

把/root/solr-4.10.3/example/lib/ext 目录下所有的jar包复制到solr工程中。

[root@localhost bin]#./startup.sh
[root@localhost webapps]#rm -rf solr.war
[root@bogon ext]# cp * /usr/local/solrcloud/tomcat/webapps/solr/WEB-INF/lib/ 

第四步:创建solrhome。修改web.xml指定solrhome的位置。

[root@bogon example]# pwd
/root/solr-4.10.3/example
[root@bogon example]# cp -r solr /usr/local/solrcloud/solrhome

 需要修改solr工程的web.xml文件。

solrhome准备4份,solrhome1,solrhome2,solrhome3,solrhome4

5. solr集群的搭建

第一步

solrhome中的配置文件上传到zookeeper集群。使用zookeeper的客户端上传。

客户端命令位置:/solr-4.10.3/example/scripts/cloud-scripts

先要把zookeeper启动

[root@localhost solrcloud]# cd /home/admin/solr-4.10.3/example/scripts/cloud-scripts/

./zkcli.sh -zkhost 192.168.206.145:2181,192.168.206.145:2182,192.168.206.145:2183 -cmd upconfig -confdir /usr/local/solrcloud/solrhome1/collection1/conf -confname myconf  

查看配置文件是否上传成功:(目录在zookeeper的bin下面)

[root@bogon bin]# ./zkCli.sh

Connecting to localhost:2181

[zk: localhost:2181(CONNECTED) 0] ls /

[configs, zookeeper]

[zk: localhost:2181(CONNECTED) 1] ls /configs

[myconf]

[zk: localhost:2181(CONNECTED) 2] ls /configs/myconf

[admin-extra.menu-top.html, currency.xml, protwords.txt, mapping-FoldToASCII.txt, _schema_analysis_synonyms_english.json, _rest_managed.json, solrconfig.xml, _schema_analysis_stopwords_english.json, stopwords.txt, lang, spellings.txt, mapping-ISOLatin1Accent.txt, admin-extra.html, xslt, synonyms.txt, scripts.conf, update-script.js, velocity, elevate.xml, admin-extra.menu-bottom.html, clustering, schema.xml]

[zk: localhost:2181(CONNECTED) 3]

 第二步

修改每个solrhome(1-4)下的solr.xml文件,指定当前实例运行的ip地址及端口号。

 第三步

修改每一台solrtomcat 的 bin目录下catalina.sh文件中加入DzkHost指定zookeeper服务器地址: 

JAVA_OPTS="-DzkHost=192.168.25.154:2181,192.168.25.154:2182,192.168.25.154:2183"

(可以使用vim的查找功能查找到JAVA_OPTS的定义的位置,然后添加)

第四步

重新启动tomcat

一个主节点多个备份节点,集群只有一片。

第五步

创建一个两片的collection,每片是一主一备。

使用以下命令创建:(在浏览器的地址栏输入即可)

http://192.168.25.154:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2

第六步

删除collection1.

http://192.168.25.154:8080/solr/admin/collections?action=DELETE&name=collection1

原文地址:https://www.cnblogs.com/zuge/p/5757336.html