solr集群的搭建

来源:互联网 发布:雕刻机编程软件 编辑:程序博客网 时间:2024/05/16 01:59

1.solrCloud原理的讲解

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下面存放的是核心的配置文件

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


查看如下

然后编辑配置文件

cd /conf

复制zoo_sample.cfg为zoo.cfg


然后编辑zoo.cfg

2.2 zoo.cfg配置详解

tickTime 时间单元,单位毫秒

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

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

zookeeper 默认端口 2181

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

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

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

3888 zookeeper和外部通信的端口

配置完成如下:

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

2.3 复制zookeeper到其他系统

系统间拷贝文件


修改其他文件的myid

2、 3

2.4 启动zookeeper

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


两台是follower一台是leader

3 solr集群的搭建

3.1 拷贝solr和tomcat

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

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

cd solr 4.10.3/进入solr home

再到example目录下cd example/

然后进入到solr目录cd solr/

再到collection1中cd collection1/

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



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

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

修改solr/home值如下

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里面是否有配置信息

执行./zkCli.sh


3.3 更改solr的访问端口为 8080

退出后切换目录

然后编辑solr.xml

将访问端口改为8080


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


然后


添加关联配置

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



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

以上参数名称

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集群


3.8 验证保存数据

插入数据后可以从不同的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";

      //创建集群版客户端

      CloudSolrServersolrServer = newCloudSolrServer(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>