solrcloud zookeeper

什么是solrcloud,为什么要solrcloud

solrcloud分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用solr集群,即solrcloud。

结构

solrcloud zookeeper_第1张图片
物理和逻辑结构.png

物理结构

逻辑结构

zookeeper

//Todo
简言之,就是一个管理员!(下次补充)

实验

搭建一个SolrCloud,将一个项目的单机solr实例改成集群环境下的。

配置

环境

3台zookeeper服务器,SolrCloud由

  1. 创建3个zookeeper实例
    解压zookeeper,/usr/local/solrcloud下复制三份解压后的文件夹,zookeeper1、zookeeper2、zookeeper3
    并创建data文件夹,创建一个myid。示例:zookeeper1/data下
 echo 1 >> data/myid
  1. 进入conf 把zoo_sample.cfg改名为zoo.cfg
cp zoo_sample.cfg zoo.cfg

修改配置文件

dataDir=/usr/local/zookeeper2/data/     //创建data的目录全路径
# the port at which the clients will connect
clientPort=2182                                   //客户端连接的端口
server.1=192.168.176.102:2881:3881            //集群中节点信息包括ip以及投票和选举的端口
server.2=192.168.176.102:2882:3882
server.3=192.168.176.102:2883:3883
  1. 启动zookepper
/bin/zookeeper*/bin/zkServer.sh start
solrcloud zookeeper_第2张图片
nginx集群启动.png

配置solr实例

  1. 配置4个solr实例,就需要4个tomcat


    solrcloud zookeeper_第3张图片
    solrcloud目录结构.png

    修改conf/server.xml 端口号

  2. 复制jar包到lib,创建solrhome,修改webapps/solr/WEB-INF/web.xml(指定solrhome实例)
  3. 测试
    编写脚本,启动4个tomcat实例,浏览器里访问192.168.176.102:808*/solr 正常solr的操作面板出现,启动成功!

配置solr集群

  1. 把solrhome中的配置文件上传到zookeeper集群。使用zookeeper客户端上传。
    命令位置: /usr/local/solr-4.10.3/example/scripts/cloud-scripts/
[root@localhost cloud-scripts]# ./zkcli.sh -zkhost 192.168.176.102:2181,192.168.176.102:2182,192.168.176.102:2183 -cmd upconfig -confdir /usr/local/solrcloud/solrhome1/collection1/conf -confname myconf

zookeeper/bin/zkCli.sh 查看配置文件是否上传成功

  1. 修改solr.xml
    修改solrhome下的solr.xml,指定当前实例运行的IP地址和端口
  2. 将solr与zookeeper关联
    修改每一台solr的tomcat 的 bin目录下catalina.sh文件中加入DzkHost指定zookeeper服务器地址:
JAVA_OPTS="-DzkHost=192.168.176.102:2181,192.168.176.102:2182,192.168.176.102:2183"
  1. 测试
solrcloud zookeeper_第4张图片
单片集群.png
  1. 创建一个两片的collection,每片是一主一备
http://192.168.176.102:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2
solrcloud zookeeper_第5张图片
solr分片.png

项目整合

//todo

你可能感兴趣的:(solrcloud zookeeper)