Solr的安装与配置--集群版SolrCloud

前面已经介绍过Solr的单机版的安装与配置,下面介绍一下集群版SolrCloud的安装与配置

1.SolrCloud是什么

SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud来满足这些需求。 
SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心。 

它有几个特色功能:

  • 集中式的配置信息
  • 自动容错
  • 近实时搜索
  • 查询时自动负载均衡

2.Solr集群的结构


3.Solr集群的搭建



3.1 前提条件

  • Linux系统
  • Jdk环境
  • Zookeeper

3.2 ZooKeeper的安装步骤

  1. 把zookeeper的安装包上传到服务器。
  2. 解压缩。
  3. 在/usr/local/目录下创建一个solrcloud目录。把zookeeper解压后的文件夹复制到此目录下三份。分别命名为zookeeper1、2、3。
[root@bogon ~]# mkdir /usr/local/solrcloud
[root@bogon ~]# mv zookeeper-3.4.6 /usr/local/solrcloud/zookeeper1
[root@bogon ~]# cd /usr/local/solrcloud
[root@bogon solrcloud]# ll
total 4
drwxr-xr-x. 10 1000 1000 4096 Feb 20  2014 zookeeper1
[root@bogon solrcloud]# cp -r zookeeper1/ zookeeper2
[root@bogon solrcloud]# cp -r zookeeper1/ zookeeper3

   4.配置zookeeper。

  • 在每个zookeeper文件夹下创建一个data目录。
  • 在data文件夹下创建一个文件名称为myid,文件的内容就是此zookeeper的编号1、2、3。
[root@bogon data]# echo 1 >> myid
[root@bogon data]# ll
total 4
-rw-r–r–. 1 root root 2 Sep 17 23:43 myid
[root@bogon data]# cat myid 
1
[root@bogon data]# 

在zookeeper2、3文件夹下分别创建data目录和myid文件
[root@bogon solrcloud]# mkdir zookeeper2/data
[root@bogon solrcloud]# echo 2 >> zookeeper2/data/myid
[root@bogon solrcloud]# ll zookeeper2/data
total 4
-rw-r–r–. 1 root root 2 Sep 17 23:44 myid
[root@bogon solrcloud]# cat zookeeper2/data/myid
2
[root@bogon solrcloud]# mkdir zookeeper3/data         
[root@bogon solrcloud]# echo 3 >> zookeeper3/data/myid 
  • 把zookeeper1下conf目录下的zoo_sample.cfg文件复制一份改名为zoo.cfg。
  • 修改zoo.cfg的配置。


  • 启动zookeeper。进入zookeeper1/bin目录下。
//启动zookeeper:./zkServer.sh start
//关闭:./zkServer.sh stop
//查看状态:./zkServer.sh status

[root@bogon solrcloud]# zookeeper1/bin/zkServer.sh status
JMX enabled by default
Using config: /usr/local/solrcloud/zookeeper1/bin/../conf/zoo.cfg
Mode: follower
[root@bogon solrcloud]# zookeeper2/bin/zkServer.sh status 
JMX enabled by default
Using config: /usr/local/solrcloud/zookeeper2/bin/../conf/zoo.cfg
Mode: leader
[root@bogon solrcloud]# zookeeper3/bin/zkServer.sh status 
JMX enabled by default
Using config: /usr/local/solrcloud/zookeeper3/bin/../conf/zoo.cfg
Mode: follower

3.3 Solr实例的搭建

  • 创建4个tomcat实例,修改其端口。8080-8083
  • 解压solr-4.10.3.tar.gz压缩包。从压缩包中复制solr.war到tomcat。
  • 启动tomcat解压war包。把solr-4.10.3目录下example目录下的关于日志相关的jar包添加到solr工程中。
  • 创建solrhome。修改web.xml指定solrhome的位置。

3.4 solr集群的搭建

第一步:

solrhome中的配置文件上传到zookeeper集群。使用zookeeper的客户端上传。 
客户端命令位置:/root/solr-4.10.3/example/scripts/cloud-scripts

./zkcli.sh -zkhost 192.168.25.154:2181,192.168.25.154:2182,192.168.25.154:2183 -cmd upconfig -confdir /usr/local/solrcloud/solrhome1/collection1/conf 
-confname myconf
查看配置文件是否上传成功:
//登录ZooKeeper服务器
[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下的solr.xml文件,指定当前实例运行的ip地址及端口号。 



第三步:

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

JAVA_OPTS="-DzkHost=192.168.25.154:2181,192.168.25.154:2182,192.168.25.154:2183" 
第四步:

重新启动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



猜你喜欢

转载自blog.csdn.net/qq_33561055/article/details/73867264