solr集群搭建和 java调用 solr集群

solrClund 是solr提供的分布式搜索方案 
solrClund 是基于solr和zookeeper的分布式搜索方案, 
主要思想是使用zookeeper作为集群的配置中心 
特色功能: 
1.集中式的配置信息 
2.自动容错 
3.近实时搜索 
4.查询时自动负载均衡

zookeeper:动物园管理员,用于管hadoop(大象)、Hive(蜜蜂)的管理员

SolrCloud结构 
需要由多台服务器共同完成索引和搜索任务 
实现的思路是将索引数据进行shard(分片) 拆分,每个分片由多台的服务器共 
同完成。当一个索引或搜索请求过来时会分别从不同的shard的服务器中操作 
索引。 
solrCloud需要 solr基于zookeeper部署,zookeeper是一个集群管理软件, 
由solrCloud需要由多台服务器组成。由zookeeper来进行协调管理 
多个分片相加起来才是一个完成的索引库 
这里写图片描述

这里写图片描述

服务器数量: 
zookeeper:3台服务器

solr:4台服务器

集群搭建 
zookeeper集群: 
zookeeper有一个选举机制,选举谁是leader,谁是follower,成为主 
节点,需要得到半数以上的投票。所以尽可能为奇数节点

1.创建三个zookeeper实例: 
2.分别在zookeeper文件夹下,创建data文件夹,下面创建myid(内容为1、2、3)

3.在E:\solr\solrColud\zookeeper1\conf 下将zoo_sample.cfg更名为zoo.cfg

#myid文件的位置
dataDir=E:/solr/solrColud/zookeeper1/data
# the port at which the clients will connect

#zookeeper对外提供的端口号:
clientPort=2181

#集群所有节点的信息
# server.1:代表第一台zookeeper,1为myid文件中的值,
#两个端口号:1个投票的,1个选举的
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883

//第二台和第三台则只需要修改myid的文件位置和端口号
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

4.启动zookeeper,三台都启动成功,则不再报错

solr实例

1.启动4个tomcat实例 
2.搭建4个单机版solr实例

3.需改tomcat的端口号: 
8080 
8081 
8082 
8083 
4.需改solrhome的位置

集群搭建 
1.让zookeeper集群集中管理配置文件,把配置文件上传到zookeeper

2.将E:\solr\solrColud\solrhome1\collection1\conf 下面的内容上传到zookeeper集群中

3.在cmd 中 ,命令上传文件:

java -classpath E:\solr\solrColud\apache-tomcat1\webapps\solr\WEB-INF\lib/*  org.apache.solr.cloud.ZkCLI  -zkhost 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183  -cmd upconfig -confdir E:\solr\solrColud\solrhome1\collection1\conf  -confname myconf
 
 
  • 1

4.查看上传的文件:有myconf说明上传成功

这里写图片描述

5.修改每个solrhome下的solr.xml文件

<solr>

  <solrcloud>
  //solr每个实例对应的ip
    <str name="host">${host:127.0.0.1}</str> 
//tomcal的端口
    <int name="hostPort">${jetty.port:8080}</int>
    <str name="hostContext">${hostContext:solr}</str>
    <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
  </solrcloud>

  <shardHandlerFactory name="shardHandlerFactory"
    class="HttpShardHandlerFactory">
    <int name="socketTimeout">${socketTimeout:0}</int>
    <int name="connTimeout">${connTimeout:0}</int>
  </shardHandlerFactory>

</solr>
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

6.告诉每个solr实例,zookeeper集群的位置 
修改每一台 tomcat的bin目录下catalina.bat文件中加入DzkHost指定 
zookeeper服务器地址

set JAVA_OPTS="-DzkHost=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"
 
 
  • 1

7.启动所有tomcat

8.访问solr 
这里写图片描述

9.现在只有一片,1个主,三个备

10.使用命令进行分片,两分的集群

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

 
 
  • 1
  • 2

11.表示创建切片成功,每一片都是一主一备 
这里写图片描述

12删除集群的命令:

http://127.0.0.1:8080/solr/admin/collections?action=DELETE&name=collection1
 
 
  • 1

这里写图片描述

java调用 solr集群 
//添加文档 

这里写图片描述

原文:http://blog.csdn.net/qq_20261343/article/details/50706705

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值