SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。
当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,
这时需要使用SolrCloud来满足这些需求。
SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心。
它有几个特色功能:
1)集中式的配置信息
2)自动容错
3)近实时搜索
4)查询时自动负载均衡
1.搭建solrCloud的先搭建solr单机版(可参考上一篇文章)
2.这里就模拟先搭建3个solr单机版,3个zookeeper服务
3.solrCloud依赖于zookeeper,所以我们先按照zookeeper集群(可参考上一篇文章)
4.由于solr版本的不同,有一些文件的存放目录改了,这里使用的是solr5.5.4版本
一.先把3个solr单机版中随便一个solr上传solrhome下的solrcore的conf目录到zookeeper中 (其中一个solr做)
#cd 到这个目录下 这里存放了上传文件到zookeeper的客户端
cd /opt/solr/solrcloud/solr-5.5.4/server/scripts/cloud-scripts
#运行此命令, 会在zookeeper中生成/configs/mysolrconf
/zkcli.sh -zkhost www.hadoop1.org:2181,www.hadoop2.org:2181,www.hadoop3.org:2181
-cmd upconfig -confdir /opt/solr/solrcloud/solrhome/solrcore1/conf/ -confname mysolrconf
二.修改solrhome下的solr.xml文件,指定当前实例运行的ip地址及端口号。(三台solr都要修改)
cd /opt/solr/solrcloud/solrhome
vim solr.xml
<str name="host">${host:www.hadoop1.org}</str> #IP www.hadoop1.org www.hadoop2.org www.hadoop3.org
<int name="hostPort">${jetty.port:8080}</int> #端口 8080 8080 8080
三.修改每一台solr的tomcat 的 bin目录下catalina.sh文件中加入DzkHost指定zookeeper服务器地址(三台solr都要修改)
#JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"
JAVA_OPTS="-DzkHost=www.hadoop1.org:2181,www.hadoop2.org:2181,www.hadoop3.org:2181" #增加这一行
四.重新启动每个tomcat。
五.发现集群只有一个主,其他都是备份 是一主双备
六.创建一个的solrcore2,都是主,没有备份的
使用以下命令创建:
http://www.hadoop1.org:8080/solr/admin/collections?action=CREATE&name=solrcore2&numShards=3&replicationFactor=1
七.删除solrcore2.
使用以下命令删除:
http://www.hadoop1.org:8080/solr/admin/collections?action=DELETE&name=solrcore2
八.java使用solrj Api访问
注意是使用CloudSolrClient 而不是httpSolrClient了
效果图
solr集群solrCloud搭建
原创
©著作权归作者所有:来自51CTO博客作者黄信程的原创作品,谢绝转载,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
solrcloud&zookeeper集群搭建
solrcloud&zookeeper集群搭建zookeeper的配置解压tar –zxvf zookeeper.XXX.
solrcloud solr zookeeper tomcat