1.solrCloud原理的讲解

solr集群的搭建

2.zookeeper集群的搭建

首先要搭建zookeeper集群,zookeeper集群一般为基数台,有一个内部选举机制,会选出一个leader,其余为follower

2.1 搭建集群准备工作

上传zookeeper-3.4.6.tar.gz

解压zookeeper

tar -zxvf zookeeper-3.4.6.tar.gz -C/usr/zookeeper/

在conf下面存放的是核心的配置文件

创建存储数据和日志信息的文件夹

solr集群的搭建

查看如下

solr集群的搭建

然后编辑配置文件

cd /conf

复制zoo_sample.cfg为zoo.cfg

solr集群的搭建

然后编辑zoo.cfg

2.2 zoo.cfg配置详解

tickTime 时间单元,单位毫秒

initLimit=10 follower启动的时候会从zookpeer的 leader同步数据时间不能超过设置的时间

syncLimit=5 心跳检测 leader和follower之间的心跳检测

zookeeper 默认端口 2181

配置存放数据和存放日志的路径

solr集群的搭建

配置集群需要配置其他节点

solr集群的搭建

2888 zoookeeper内部通信的端口,选举、心跳检测用的

3888 zookeeper和外部通信的端口

配置完成如下:

solr集群的搭建

然后切换到data目录下,touch myid创建myid文件,echo >1 myid向myid中写入1

2.3 复制zookeeper到其他系统

系统间拷贝文件

solr集群的搭建

修改其他文件的myid

2、 3

2.4 启动zookeeper

solr集群的搭建

把三台全部启动后,查看zookeeper的状态

solr集群的搭建

两台是follower一台是leader

3 solr集群的搭建

3.1 拷贝solr和tomcat

把以前安装好的solr服务器到需要搭建集群的机器

solr集群的搭建

然后进入到solrCloud修改一些数据cd solrCloud/

cd solr 4.10.3/进入solr home

再到example目录下cd example/

然后进入到solr目录cd solr/

再到collection1中cd collection1/

删掉单机版的数据rm -rf data/

solr集群的搭建

solr集群的搭建

然后进入到cd solr/WEB-INF/

然后vim web.xml/编辑web.xml

修改solr/home值如下

solr集群的搭建

3.2 把solr的配置信息上传到zookeeper

Zookeeper需要对solr进行监听,所以需要把solr的配置信息传给zookeeper

         Sh/usr/solrCloud/solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh -zkhost192.168.25.143:2181,192.168.25.144:2181,192.168.25.145:2181 -cmd upconfig -confdir/usr/solrCloud/solr-4.10.3/example/solr/collection1/conf -confname myconf-solrhome /usr/solrCloud/solr-4.10.3/example/solr

查看zookeeper里面是否有配置信息

solr集群的搭建

执行./zkCli.sh

solr集群的搭建

3.3 更改solr的访问端口为 8080

退出后切换目录

solr集群的搭建

然后编辑solr.xml

将访问端口改为8080

solr集群的搭建

3.4 设置solr服务器启动时与zookeeper关联

solr集群的搭建

然后

solr集群的搭建

添加关联配置

JAVA_OPTS="-DzkHost=192.168.25.143:2181,192.168.25.144:2181,192.168.25.145:2181"

solr集群的搭建


3.5 配置分片,副本数,节点

solr集群的搭建

以上参数名称

1. 分片数量

2.  core名称

3.  所属分片

4.  节点名称

 

192.168.25.143 片1  1节点

192.168.25.144 片1  2节点

192.168.25.145 片2  3节点

192.168.25.146 片2  4节点



3.6 系统间复制solr

1.把143机器上面配置好的solr直接复制到其他的机器。

2.修改其他机器上面的core.properties配置文件

 

第二胎机器的配置文件

numShards=2

name=collection1

shard=shard1

coreNodeName=core_node2

 

第三台机器的配置文件

numShards=2

name=collection1

shard=shard2

coreNodeName=core_node3

 

第四台机器的配置文件

numShards=2

name=collection1

shard=shard2

coreNodeName=core_node4


3.7 启动solr集群

solr集群的搭建

3.8 验证保存数据

插入数据后可以从不同的solr服务器下查询到

solr集群的搭建

4 solrCloud整合spring

4.1 测试代码的编写

//集群版solr的测试

   @Test

   publicvoid demo5() throws SolrServerException, IOException {

      //配置三台 zookeeperIP

      String zHost = "192.168.25.143:2181,192.168.25.144:2181,192.168.25.145:2181";

      //创建集群版客户端

      CloudSolrServer solrServer = new CloudSolrServer(zHost);

      //设置默认的collection1

      solrServer.setDefaultCollection("collection1");

     

      //保存数据

      SolrInputDocument doc = new SolrInputDocument();

      doc.setField("id", "100");

      doc.setField("name","李四");

      solrServer.add(doc);

      solrServer.commit();

     

   }

4.2 spring整合solrCloud

<!-- 配置集群版的CloudSolrServer -->

         <beanid="cloudSolrServer" class="org.apache.solr.client.solrj.impl.CloudSolrServer">

                   <!--设置请求路径 连接三台zkHost -->

                   <constructor-argindex="0"value="192.168.25.143:2181,192.168.25.144:2181,192.168.25.145:2181"/>

                   <!--设置默认的collection1 -->

                   <propertyname="defaultCollection" value="collection1"/>

         </bean>



相关文章: