Solr学习(三) 单独ZooKeeper(外部)实例 + SolrCloud(tomcat)实例

一切依旧 2013-03-21

开场白:

简单讲述如何配置独立的外部 ZooKeeper 集群管理组件来管理 solr集群(多实例solr)

本章建立在 Solr学习(一)  、Soer学习(二)基础上进行配置。

 声明:描述的比较笼统繁琐,有偏差的地方请大家毫不留情的拍砖Solr学习(三) 单独ZooKeeper(外部)实例 + SolrCloud(tomcat)实例

完成目标: 

单zookeeper(独立)实例 + 多solr-4.2.0(tomcat)实例集群管理。

前期准备: 

1、下载ZooKeeper-3.4.5.tar.gz解压。

2、完成Solr-4.2.0+Tomcat6.0环境部署(如果为完成请参考Solr学习一)

名词解释:

8080服务器:下文统称端口为8080的Tomcat6.0服务器。

9090服务器:下文统称端口为9090的Tomcat6.0服务器。

ZooKeeper:下文指ZooKeeper的项目根目录(解压后的目录,尽量不要放在中文目录中)如下图


Solr学习(三) 单独ZooKeeper(外部)实例 + SolrCloud(tomcat)实例
 开始生产:

    步骤1:在 ZooKeeper目录“D:\zookeeper-3.4.5\conf”找到“zoo_sample.cfg”文件(将其备份一下),改名为“zoo.cfg”,打开它(最好用UE打开!防止乱码!)修改里头内容为(原本很多注释。都被我干掉了!因为哥有强迫症 +_+!!)

tickTime=2000 
initLimit=10
syncLimit=5
dataDir=D:/zookeeper-3.4.5/temp
clientPort=2181

这里我们要改的是第四个配置 “dataDir”(数据文件的路径)自己设定吧。我是放在ZooKeeper下新建一个文件夹“temp”。

步骤2:

找到“ZooKeeper\\bin”目录的“zkServer.cmd”文件。 双击启动。。。。启动没有报错,说明OK。 

步骤3:

现在开始搞多个solr 实例配置,(分别有多个tomcat 每个tomcat带起1个solr实例)

之前我们配置过tomcat6.0下启动单一solr实例(详见:solr学习一),目前配置多实例(solr+tomcat)  就要解决TOMCAT端口冲突问题。 这里我不多做介绍。我的做法是打开tomcat的startup.bat 文件。  把里头的所有变量都加上2 。

例如: 

set "CURRENT_DIR=%cd%"
if not "%CATALINA_HOME%" == "" goto gotHome
改成 
set "CURRENT_DIR2=%cd%"
if not "%CATALINA_HOME2%" == "" goto gotHome 

还有server.xml 里头的端口,我这里把常用的 8080改成 9090了,8443改成 9443  反正各种变9.  只要不冲突!只要你记得你改了多少就成!这里自己折腾吧。

 

步骤4:

    偷懒!把原先“8080服务器”根目录下的solrapp文件夹拷贝到“9090服务器”根目录下。(如果没看之前文章的朋友,这里解释一下“solrapp”是solr-work目录,是我们后来自己建立的文件夹。详见:solr学习一 )


Solr学习(三) 单独ZooKeeper(外部)实例 + SolrCloud(tomcat)实例

同样,把“8080服务器下”“webapps”里头的“solr ”文件夹也拷贝到 “9090服务器”的同样目录 “webapps”里。 

步骤5:

    此时要在“9090服务器”上建立jndi指引文件,到“E:\apache-tomcat-6.0.35.9090\conf\Catalina\localhost”下新建“solr.xml”文件(也可以直接去“8080服务器”那边拷贝过来)然后写入内容

 

<?xml version="1.0" encoding="UTF-8" ?>
<Context docBase="E:/apache-tomcat-6.0.35.9090/webapps/solr.war" debug="0" crossContext="true" > 
   <Environment name="solr/home" type="java.lang.String" value="E:/apache-tomcat-6.0.35.9090/solrapp/solr" override="true" /> 
</Context>
  XML注意: docBase 与 value 两个值根据自己的路径不同做改变, 前者是war包的位置,后者是刚刚自己建立的solrapp目录位置的solr文件夹。   

相关推荐