Solr集群搭建指南(上)

由于这次在处理umcsyslog的时候用到solr, 而集团目前还没有solr线上和线下集群,于时自己动搭建了

一套solr集群;在搭建的时候查看了网上不少资料,也碰到过很多问题,最终经过一路的波折,终于把线下第

一个solr集群给搭建好了,网上介绍的这方面资料比较多,但都不太全面,并且绝大部分都没有讲清楚;下面

就来分享一下自己在搭建solr集群的经验与步骤, 希望以后对大家有搭建solr集群需求的同学有所帮助;

1. 下载Solr集群相关的软件:

             solr集群是依赖于zookeeper, 在线上环境下最后学是部署在tomcat重量级的容器下, 因此也需要下载

tomcat, 当然还要下载solr本身

            1.1 zookeeper :  由于集团线下有不少现存的zookeeper集群, 安装zookeeper集群很比较简单, 在此

就不介绍如何安装zoopkeeper集群了,本次是直接用杭州这边现存的zookeeper集群;

                   zookeeper地址是:10.9.0.130:2181,10.9.0.131:2181,10.9.0.132:2181

            1.2  tomcat:   apache-tomcat-7.0.63  http://tomcat.apache.org/download-70.cgi

            1.3  solr:         solr-5.2.1  下载地址: http://www.apache.org/dyn/closer.lua/lucene/solr/5.2.1

2.  安装solr集群: 

            下载下来的solr安装解压后进入根目录,如下图所示:

             

              bin目录:solr在自带jetty容器上的一些启动脚本,由于我们是把solr放在tomcat容器下运行,故这几目录没

                             什么用;

             contrib目录:solr特定需求所需要的外部jar包,没有相关的需求,也没什么用;

             dist目录:solr运行时所需要的jar,在运行时,需要把dist目录和dist的子目录solrj-lib所有jar包 所复制到solr

                            应用的WEB-INF/lib目录下;

             docs目录:solr的的开发文档;

             example目录:solr示例;

             licenses目录:solr官方的licenses相关的文件,不用管;

             server目录: server的子目录webapps有一个solr的war包,这个war非常重要,我们运行的时候,就是要把

                                这war包放在tomcat容器下;server的子目录solr是一个关于solr集群多核的配置示例,这个

                                配置示例是基于内置zookeeper的,我们用的都是外部公共的 zookeeper,也没什么用;

           下面进入正式安装过程:

            solr集群两台机器:

             10.9.0.137 

             10.9.0.134

             我们统一把tomcat安装在/export/servers/目录下

       window上的操作

              1. 首先把server/webapps目录下的war包复制到tomcat的webapps目录 下, 然后启动tomcat, 

                 tomcat成功启动后,webapps目录 下多了一个solr文件夹,  停止tomcat删除solr.war文件

              2. 把\example\example-DIH目录下的 solr文件夹分别打包上传到10.9.0.137,10.9.0.134两台机

                  器的/export/servers 目录下,然后解压,再删除原来的solr压缩文件;

              3. 上传tomcat分别到10.9.0.137,10.9.0.134两台机器 的/export/servers目录下,解压后删除原

                  来压缩tomcat文件; 上传以后,执行 ls -l/export/servers ,显示的结果如下:

                        

            4.  进入/export/servers/apache-tomcat-7.0.63/webapps/solr/WEB-INF目录,  编辑

                    web.xml文件,把下面这段内容的外面的 注释去掉

                   <env-entry>
                        <env-entry-name>solr/home</env-entry-name>
                       <env-entry-value>put/your/solr/home/here</env-entry-value>
                      <env-entry-type>java.lang.String</env-entry-type>
                  </env-entry>

                  然后,再把env-entry-value的内容修改为solr上传的目录,在本次安装中, 

                 solr的home路径是/export/servers/solr,于是修改如下:

                  <env-entry>
                        <env-entry-name>solr/home</env-entry-name>
                       <env-entry-value>/export/servers/solr</env-entry-value>
                      <env-entry-type>java.lang.String</env-entry-type>
                  </env-entry>

              

           5. 进入/export/servers/apache-tomcat-7.0.63/bin目录下,编辑catalina.sh文件234行的下面添加上下

                面tomcat启动参加:

                   JAVA_OPTS="$JAVA_OPTS -Xms2048M -Xmx2048M -Xmn512M

                                           -XX:PermSize=256M -XX:MaxPermSize=256M

                                           -Dbootstrap_confdir=/home/solr/umc_syslog/conf

                                           -Dcollection.configName=myconf 

                                           -DzkHost=10.9.0.130   :2181,10.9.0.131:2181,10.9.0.132:2181 

                                           -DnumShards=8 

                                           -Drouter.name=compositeId"

                上面配置参数的具体含义如下:

                    -Dbootstrap_confdir solr启动的配置目录路径,在集群的情况下,所有转发都是通过这个目录来进行的;

                    -Dcollection.configName告诉zookeeper集群容器的配置名称;

                    -DzkHostzookeeper集群的地址列表;

                    -DnumShardssolr容器切片的最大个数

                    -Drouter.name插入索引时候的路由名称,一般是compositeId否则可能所有索引都会写到一个切片中 

                  注意,在一个solr集群中,只需要其中的一台的solr服务器的tomcat启动参数需要这么配置,集群中其它机器

                  只需要如下这么配置即可:

                    JAVA_OPTS="$JAVA_OPTS -Xms2048M -Xmx2048M -Xmn512M-XX:PermSize=256M 

                                                               -XX:MaxPermSize=256M

                                                               -DzkHost=10.9.0.130:2181,10.9.0.131:2181,10.9.0.132:2181" 

                    即只需要配置zookeeper集群的地址列表;

       

            6.   进入到/export/servers/solr目录 下, 编辑solr.xml文件,在solr标签之前添加如下的内容:

              <solrcloud>

                  <strname="host">${host:}</str>  <!---host名称,默认-->
                  <intname="hostPort">${jetty.port:8888}</int>  <!--tomcathttp访问端口--->
                  <strname="hostContext">${hostContext:solr}</str>  <!---访问solr服务器的相对路径---->
                  <boolname="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
                  <intname="zkClientTimeout">${zkClientTimeout:30000}</int>
                  <intname="distribUpdateSoTimeout">${distribUpdateSoTimeout:600000}</int>
                  <intname="distribUpdateConnTimeout">${distribUpdateConnTimeout:60000}</int>
                <strname="zkHost">10.9.0.130:2181,10.9.0.131:2181,10.9.0.132:2181</str><!--zk地址列表-->
            </solrcloud>

         <shardHandlerFactoryname="shardHandlerFactory"class="HttpShardHandlerFactory"> <!--切片处理器类->
               <intname="socketTimeout">${socketTimeout:600000}</int>
                <intname="connTimeout">${connTimeout:60000}</int>
         </shardHandlerFactory>

         到此,整个solr集群差不多都配置完毕了, 下篇继续!     

                 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值