Ubuntu伪分布模式下SolrCloud集群安装

来源:互联网 发布:淘宝打印电子面单流程 编辑:程序博客网 时间:2024/05/17 07:37

最近正好在做有关Solr索引的工作,为了工作方便,便在虚拟机中搭建了SolrCloud集群环境,网上关于SolrCloud搭建的教程很多,自己折腾了好一会终于把SolrCloud环境搭建完毕,下面分享一下主要步骤。

1 搭建环境:

   VMWare下Ubuntu14.0

   ZooKeeper-3.4.6.jar

   Solr-5.2.1.jar

   Tomcat-7.0


2.搭建步骤:

   其实搭建SolrCloud的原理并不复杂,无非就是首先在Tomcat中布好Solr单节点,再通过ZooKeeper将各个节点连接起来。


2.1 Tomcat安装

   这个就比较简单了,将Tomcat安装包下载下来放在对应的目录即可,由于我这里模拟的是伪分布模式,所以在Ubuntu中安装了3个Tomat用以模拟3个节点的情况,3个安装包分布设置3个端口:分别为8080 ,8081,8082:

                                             

                                                                            图1   3个Tomcat安装文件

   Tomcat端口的更改在{tomcat}/conf/server.xml文件中:

                                                 

                                                                           图2  Tomcat端口更改

   3个文件中的port值分别设置为8080、8081、8082即可,现在分别启动3个Tomcat,就得到了3个单节点。


2.2 ZooKeeper伪分布安装

     这里要搭建ZooKeeper的伪分布模式,同理也是在一个机器上,只不过端口不同。

   首先下载ZooKeeper安装包解压至相应的目录下,ZooKeeper默认是单节点的,端口是2181,为了模拟出ZooKeeper集群,在ZooKeeper目录创建3个data目录,分别用来作为每个ZooKeeper节点的存储目录:

                                                                   

                                                                                                         图3 ZooKeeper单节点数据目录

   在每个文件夹下分别建立一个myid文件,分别写入内容1、2、 3,这个文件是用来标识各个ZooKeeper节点的。

   下面打开ZooKeeper目录下的conf目录,里面有一个文件zoo.fg,将该文件复制两份,3个文件分别为zoo1.cfg、zoo2.cfg、zoo3cfg,这3个文件分别是各个ZooKeeper节点的配置启动文件。

   打开zoo1.cfg文件,进行如下修改: dataDir修改为data_1的位置,clientPort为2181,并在文件末尾加上如下配置:

          server.1=localhost:2287:3387

          server.2=localhost:2288:3388

          server.3=localhost:2289:3389

   这里server后缀1、2、3分别对应各个data目录中myid文件中的内容。对于zoo2.cfg和zoo3.cfg文件,将dataDir设置为data_2和data_2文件夹的位置,clientPort分别设置为2182和2183,这样3个ZooKeeper节点就配置完成了。

   通过以下命令分别启动各个ZooKeeper节点,也就启动了ZooKeeper集群:

                                                   

                                                                                                          图3  ZooKeeper集群启动


2.3 Solr安装配置:

              下载solr-5.2.1.jar包解压至相应目录下,在/server/webapps/目录下有一个solr.war文件,将该文件拷贝至3个Tomcat目录的webapps目录下,启动Tomcat,会自动解压成文件夹,这样就将solr部署在Tomcat上了,

     下面对每个Tomcat文件夹执行以下相同操作:

     拷贝solr-5.2.1/server/lib/ext目录下的所有文件至Tomcat的webapps/solr/WEB-INF/lib目录下

     拷贝solr-5.2.1/server/resources/log4j.properties至Tomcat的webapps/solr/WEB-INF//classes目录下

     

     接下来要为各个Tomcat下的solr指定solr/home,也就是Solr的数据索引存储目录,默认在solr-5.2.1/server目录的solr目录是作为存储目录的,为方便起见,直接在solr-5.2.1/server/目录下再创建solr1和solr2目录,并且将solr目录中的内容拷贝到这两个目录中去,这样这3个目录分别作为3个ZooKeeper节点的索引存储目录。

     修改每个Tomcat文件夹下/webapps/solr/WEB-INF/web.xml文件,以Tomcat8080文件夹为例:

                          

                                                                图4  指定solr/home的位置

     如图所示指定了Tomcat8080端口上solr的存储目录,其他两个Tomcat上的solr配置依次类推。现在依次启动各个Tomcat在各个端口上都可以访问到本端口配置的solr,下面通过配置相关属性将3个端口上的solr连接起来:

    

     在上图的solr/home目录下有一个solr.xml文件,修改该文件:

                   

                                                                  图5 solr.xml文件修改

    其中的host对应主机IP,hostPort与各个对应的Tomcat端口号对应  zkHost对应ZooKeeper的集群地址


    下面是很重要的一步: 在Tomcat8080/bin/目录下有一个catalina.sh文件,在该文件中添加以下内容:

     

     其中的-Dbootstrap_confdir指定了solr集群的配置文件目录,其中包括了solr必备的schema文件,-Dcollection.configName为配置文件名,这个可以自己设定

    对Tomcat8081/bin/和Tomcat8082/bin/目录下的catalina.sh文件分别添加以下内容:

     

    因为在Tomcat8080中已经指定了配置文件,这两个目录中可以不用再指定了,添加zkHost配置即可。


    至此,我们已完成了SolrCloud的伪分布式搭建,下面首先启动ZooKeeper集群,再依次启动Tomcat8080、Tomcat8081、Tomcat8082,打开浏览器,输入solr地址,当看到solr页面左侧标签中有cloud图标时,表明solrcloud集群搭建成功。

                 


    总结:SolrCloud环境搭建的原理还是比较简单的,实际的SolrCloud环境搭建和伪分布式环境搭建步骤一样。

0 0
原创粉丝点击