SolrCloud

是Solr提供的分布式搜索系统,需要大规模,容错,分布式索引和检索能力时使用。
是基于Solr和Zookeeper的分布式解决方案,主要思想是使用Zookeeper作为集群的配置中心。

特色功能

  1. 集中式的配置信息
  2. 自动容错
  3. 近实时搜索
  4. 查询时自动负载均衡

配置

Zookeeper作为集群的管理工具。
集群管理:容错、负载均衡、配置文件的集中管理

集群的入口

  1. 要实现zookeeper 高可用。需要搭建集群。建议是奇数节点。
  2. 需要三个zookeeper服务器。
  3. 搭建solr集群需要7台服务器。
  4. 搭建伪分布式需要三个zookeeper节点 需要四个tomcat节点。

1.搭建zookeeper集群步骤

  1. 拷贝zookeeper三份 放到自定义文件夹SolrCloud中
  2. 创建data文件夹 zookeeper第一层目录内
  3. 在data文件夹内创建myid vim 存一个1
  4. 编写conf下zoo.cfg
  5. 剩下二个是一样的 区别是data目录和myid文件分别存2,3 还有记得和客户端通信的端口号需要修改clientPort=2182
  6. 启动三个节点 写个shell
  7. 查看时leader还是follewer vim:./zkServer.sh status
    cd zookeeper1/bin/
    ./zkServer.sh start

    cd ../../
    cd zookeeper2/bin/
    ./zkServer.sh start

    cd ../../
    cd zookeeper3/bin/
    ./zkServer.sh start
    dataDir=/Users/matteo/ITSoft/SolrCloud/zookeeper1/data
    #zookeeper节点之间通信的端口
    server.1=127.0.0.1:2881:3881
    server.2=127.0.0.1:2882:3882
    server.3=127.0.0.1:2883:3883

2.搭建四个tomcat

  1. 在SolrCloud文件夹中创建四个Tomcat。
  2. tomcat配置四个 需要改三个地方 别再忘了。
  3. 弄完写一个shell脚本 直接全部运行吧。

3.四个SolrHome的配置

直接修改配置Solr的web.xml的配置
    <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/Users/matteo/ITSoft/SolrHome</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

4.需改SolrHome下的solr.xml

要改四个  慢慢改吧
    <solrcloud>
        <str name="host">127.0.0.1</str>
        <!-- 这个端口号是tomcat的端口号 -->
        <int name="hostPort">8090</int>
        <str name="hostContext">${hostContext:solr}</str>
        <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
        <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
    </solrcloud>

5.建立solr和zookeeper的关系

修改的是tomcat的配置文件catalina.sh
需要修改四个tomcat
    #JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"
    JAVA_OPTS="-DzkHost=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"

6.让zookeeper集中进行管理

到下面的文件夹下   并执行下面的命令
上传collections的配置给zookeeper  让他集中管理
使用./zkcli.sh工具
    cd /Users/matteo/ITSoft/Solr/example/scripts/cloud-scripts/

    ###我上传的时候出现了问题  将ip:端口三个依次上传就没有问题了。
    ./zkcli.sh -zkhost 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183 -cmd upconfig -confdir /Users/matteo/ITSoft/SolrCloud/SolrHome1/collection1/conf/ -confname myconf

到zookeepre1的bin下面的执行

    ./zkCli.sh -server 127.0.0.1:2181
    得到:[zk: localhost:2181(CONNECTED) 0]

查看配置

    ls /configs/myconf

7.启动四个tomcat 还是写个脚本吧。。。。

    ./Tomcat1/bin/startup.sh
    ./Tomcat2/bin/startup.sh
    ./Tomcat3/bin/startup.sh
    ./Tomcat4/bin/startup.sh

8.访问tomcat

点击Cloud出现下面的标志是成功了

9.创建新的Collection进行分片处理

在浏览器输入
    //增加
    http://127.0.0.1:8091/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2
    //删除
    http://127.0.0.1:8091/solr/admin/collections?action=DELETE&name=collection1

results matching ""

    No results matching ""