Linux下Solr集群的搭建(伪分布式)

一:Solr简介

    SolrCloud是Slor提供的分布式搜索方案,当需要大规模、容错、分布式索引和检索能力的时候使用SolrCloud,当索引量很大,搜索请求并发高使用SolrCloud。

    SolrCloud是基于Solr和Zookeeper分布式搜索方案,主要思想是使用Zookeeper作为集群的配置信息中心。

    功能

        1、集中式的配置信息

        2、自动容错

        3、近实时搜索

        4、查询时自动负载均衡

    Solr集群的系统架构

    

    物理结构

        三个solr实例,每个实例包括两个core,组成一个SolrCloud。

    逻辑结构

        索引集合包括两个Shard(Shard1和Shard2),shard1和shard2分别由三个Core组成,其中一个Leader两个Replication,Leader是由Zookeeper选举产生,zookeeper控制每个shard上三个Core的索引数据一致,解决该可用的问题。

        用户发起索引请求分别从shard1和shard2上获取,解决高并发的问题。

    Collection

        Collection在SolrCloud集群上是一个逻辑意义完整的索引结构,常常被划分为一个或者多个shard,它们使用相同的配置信息。       

    比如:针对商品信息搜索可以创建一个collection。

     collection=shard1+shard2+....+shardX

  Core:

        每个Core是Solr中一个独立运行单位,提供 索引和搜索服务。一个shard需要由一个Core或多个Core组成。由于collection由多个shard组成所以collection一般由多个core组成。    

    Master或Slave:

        Master和Slave分别是Master-Slave结构中的主节点和从节点, 同一个Shard下master和slave存储的数据是一致的,这是为了达到高可用目的。
    

   Shard

    Collection的逻辑分片。每个Shard被化成一个或者多个replication,通过选举确定哪个是Leader。

二:安装

    将要搭建Solr集群的架构:

    

    Zookeeper作为集群的管理工具。

        1、集群管理:容错、负载均衡。

        2、配置文件的集中管理

        3、集群的入口

    需要实现zookeeper 高可用。需要搭建集群。建议是奇数节点。需要三个zookeeper服务器。

     搭建solr集群需要7台服务器。

    搭建伪分布式:    

        需要三个zookeeper节点

        需要四个tomcat节点。


1、准备文件

    jdk-7u72-linux-i586.tar.gz

    apache-tomcat-7.0.47.tar.gz

    zookeeper-3.4.6.tar.gz

    solr-4.10.3.tgz

 三:开始安装

    1、Zookeeper集群的搭建

        1) 将Zookeeper压缩包上传到服务器上,解压缩,并复制三份  

        tar -zxvf zookeeper-3.4.6.tar.gz
        cp -r zookeeper-3.4.6 zookeeper01 
        cp -r zookeeper-3.4.6 zookeeper02
        cp -r zookeeper-3.4.6 zookeeper03

          2)在每个zookeeper目录下创建data目录     

         mkdir zookeeper01/data
         mkdir zookeeper02/data
         mkdir zookeeper03/data

          3)在data目录下创建myid文件,内容是每个实例的id,其他两个实例的id分别为2、3。         

         echo 1 >> myid

            

            4)修改配置文件,把conf目录下的zoo_sample.cfg文件改名为zoo.cfg。

           cp zoo_sample.cfg zoo.cfg

            5)修改zoo.cfg文件

        



       dataDir:数据保存的目录

        clientPort:客户端连接Zookeeper的端口号,需要保证每个端口号不冲突。

        第三部分:集群中的节点列表1、2、3代表节点的id

            ip后的端口是zookeeper内部通讯的端口和投票选举的端口,每个端口都不能重复。

            6)创建统一启动的批处理文件。     

        vim start-all.sh

                给文件赋可执行权限:         

        chmod u+x start-all.sh 

            7)执行检查

    


        8)创建统一关闭执行文件

        vim shutdown-all.sh

    chmod u+x shutdown-all.sh 

    至此Zookeeper集群搭建成功。

2、Solr集群的搭建

    1)创建4个tomcat实例,修改tomcat的端口号,每个tomcat运行在不同的端口上8180、8181、8182、8183。一共三处端口,全部修改避免冲突。

vim tomcat01/conf/server.xml



    2)部署solr的war包到tomcat/webapps目录下。将solr-4.10.3/dist目录下的solr-4.10.3.war复制到tomcat/webapps目录下。

    

      3)为每个solr实例创建一个solrHome。

     cp -r /usr/local/app/application/solr-4.10.3/example/solr /usr/local/app/application/solrhome01
     cp -r /usr/local/app/application/solr-4.10.3/example/solr /usr/local/app/application/solrhome02
     cp -r /usr/local/app/application/solr-4.10.3/example/solr /usr/local/app/application/solrhome03
     cp -r /usr/local/app/application/solr-4.10.3/example/solr /usr/local/app/application/solrhome04
    4)将solr需要的jar包复制到项目中。(复制前需要启动将四个tomcat启动一次,为了解压缩solr的war包)
    cd /usr/local/app/application/solr-4.10.3/example/lib/ext/
    cp * /usr/local/app/application/tomcat01/webapps/solr-4.10.3/WEB-INF/lib/
    cp * /usr/local/app/application/tomcat02/webapps/solr-4.10.3/WEB-INF/lib/
    cp * /usr/local/app/application/tomcat03/webapps/solr-4.10.3/WEB-INF/lib/
    cp * /usr/local/app/application/tomcat04/webapps/solr-4.10.3/WEB-INF/lib/

       5)修改solr的web.xml文件,把solrhome关联起来。 (四个全部都要修改,不同的solrhome对应不同的端口)        

    cd /usr/local/app/application/solrhome01/
    vim solr.xml

           

     6)建立solr与solrhome的关联,修改tomcat中solr的solrhome的路径。(四个solr都需要修改)

vim tomcat01/webapps/solr-4.10.3/WEB-INF/web.xml 

        


       7)建立solr与zookeeper的关联关系。修改tomcat/bin目录下的catalina.sh 文件,关联solr和zookeeper。         

    vim /usr/local/app/application/tomcat01/bin/catalina.sh


JAVA_OPTS="-DzkHost=192.168.25.137:2181,192.168.25.137:2182,192.168.25.137:2183"

      8)让Zookeeper统一管理配置文件,需要把solrhome/collection1/conf目录上传到zookeeper,上传任意solrhome中的配置文件即可。

                使用工具上传配置文件:

         cd /usr/local/app/application/solr-4.10.3/example/scripts/cloud-scripts/

./zkcli.sh -zkhost 192.168.25.137:2181,192.168.25.137:2182,192.168.25.137:2183 -cmd upconfig -confdir /usr/local/app/application/solrhome01/collection1/conf/ -confname myconf

            9)查看是否上传成功。

            查看zookeeper上的配置文件,使用zookeeper目录下的bin/zkCli.sh命令查看zookeeper上的配置文件: 

    cd /usr/local/app/application/zookeeper01/bin/
        
    ./zkCli.sh


            10)启动每个tomcat实例,写一个启动tomcat的批处理文件


     chmod +x start-tomcat.sh 
            

三:window下访问

错误:


解决方案:

    将tomcat关闭,将webapps下所有的solr-1.10.3改名为solr,重新启动tomcat。


四:操作Solr

    1、创建新的Collection进行分片处理。

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

    2、删除不用的Collection。

http://192.168.25.137:8180/solr/admin/collections?action=DELETE&name=collection1


猜你喜欢

转载自blog.csdn.net/jz_say/article/details/80276395