资源描述
SolrCloud 整合 Tomcat 步骤。
1 软硬件环境
操作系统:win7
Solr服务版本:solr4.0
Tomcat服务器版本:tomcat7.0.11
2 操作步骤
2.1 基本的solr运行
1、 安装好tomcat,确保可以正确运行。具体操作略。我这里的路径是:F:\dev\apache-tomcat-7.0.11
2、 解压下载下来的 apache-solr-4.0.0.tgz 到 apache-solr-4.0.0。
3、 将 apache-solr-4.0.0\example\webapps\solr.war 复制到 F:\dev\apache-tomcat-7.0.1\webapps 下。
4、 启动tomcat,这里会有报错:
5、 这个错误的意思是说没有找到solr home,所以这一步需要做的就是配置一个solr home。操作如下:关闭tomcat。进入 F:\dev\apache-tomcat-7.0.1\webapps\solr\WEB-INF 下,打开web.xml。增加如下配置
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>F:/dev/apache-tomcat-7.0.11/webapps/solr/solr_home</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
6、 在 F:\dev\apache-tomcat-7.0.1\webapps\solr 下新建文件夹solr_home,并把 apache-solr-4.0.0\example\solr 文件夹下所有东西都复制到solr_home文件夹下。
7、 到这一步,单一solr服务的tomcat已经可以正常启动啦。你可以通过这个链接访问下solr服务器。http://localhost:8080/solr
关闭tomcat ,为下面的操作做准备。
8、 现在开始配置基于zookeeper 的分布式的solr服务。分三种情况:
1) 一台zookeeper服务器,一台solr服务器。
2) 一台zookeeper服务器,多台solr服务器。
3) 多台zookeeper服务器,多台solr服务器。
下面就是一种情况一种情况的来操作啦。
2.2 一台zookeeper服务器,一台solr服务器
先说一点儿,我这里假设你已经了解了zookeeper。
由于是只有一台solr服务器,也就是说只有一个leader节点,不存在follower节点。这种模式比较简单。操作步骤如下:
1、 到F:\dev\apache-tomcat-7.0.11\webapps\solr\solr_home目录下,修改solr.xml文件。将cores节点中的hostPort修改为tomcat的对外服务端口:8080
2、 到F:\dev\apache-tomcat-7.0.11\bin目录下。编辑catalina.bat文件。在文件最开始增加:
set JAVA_OPTS=-Dbootstrap_confdir=../webapps/solr/solr_home/collection1/conf -Dcollection.configName=clusterconf -DzkRun -DzkHost=localhost:9080 -DnumShards=1
如图:
这里zkHost的端口是9080是因为solrCloud中内嵌的zookeeper对外服务端口是tomcat端口+1000。而tomcat端口是在第三步中的配置的。
3、 到此为止,相关配置全部完成,此时启动tomcat,访问http://localhost:8080/solr/#/~cloud即可得到如下图:
2.3 一台zookeeper服务器,多台solr服务器
准备工作:
因为手头上没有那么多的服务器,我就用一台机器跑多个tomcat服务器的方式模拟集群时的配置。我先复制了两个,于是现在有三个服务器,路径为:
F:\dev\apache-tomcat-7.0.11-solr_1
F:\dev\apache-tomcat-7.0.11-solr_2
F:\dev\apache-tomcat-7.0.11-solr_3
我这里的tomcat是绿色版的,需要为每个tomcat指定 CATALINA_HOME,于是进入F:\dev\apache-tomcat-7.0.11-solr_1\bin目录下,在最开头增加下列一句:
set CATALINA_HOME=F:\dev\apache-tomcat-7.0.11-solr_1
同理为apache-tomcat-7.0.11-solr_2, apache-tomcat-7.0.11-solr_3增加CATALINA_HOME的设置。
按下来是具体的操作步骤:
1、 更改tomcat 的对外服务端口:
apache-tomcat-7.0.11-solr_1 : 8001
apache-tomcat-7.0.11-solr_2 : 8002
apache-tomcat-7.0.11-solr_3 : 8003
tomcat的其他服务端口也需要更改,因为对我们来讲没有用,所以就不细说。只要保证端口不会重复占用即可。
2、 更改F:\dev\apache-tomcat-7.0.11-solr_1\webapps\solr\solr_home目录下的solr.xml文件,将hostPort端口更新为8001;
3、 F:\dev\apache-tomcat-7.0.11-solr_2\webapps\solr\solr_home目录下的solr.xml文件,将hostPort端口更新为8002;
4、 F:\dev\apache-tomcat-7.0.11-solr_3\webapps\solr\solr_home目录下的solr.xml文件,将hostPort端口更新为8003;
5、 到F:\dev\apache-tomcat-7.0.11-solr_1\bin目录下,编辑catalina.bat文件,修改最开头的set JAVA_OPTS内容为:
set JAVA_OPTS=-Dbootstrap_confdir=../webapps/solr/solr_home/collection1/conf -Dcollection.configName=clusterconf -DzkRun -DzkHost=localhost:9001 -DnumShards=1
如图:
1、
2、
3、
4、
5、
6、 到F:\dev\apache-tomcat-7.0.11-solr_2\bin目录下,编辑catalina.bat文件,修改最开头的set JAVA_OPTS内容为:
set JAVA_OPTS= -DzkHost=localhost:9001
如图:
7、 到F:\dev\apache-tomcat-7.0.11-solr_3\bin目录下,编辑catalina.bat文件,修改最开头的set JAVA_OPTS内容为:
set JAVA_OPTS= -DzkHost=localhost:9001
如图:
8、 删除F:\dev\apache-tomcat-7.0.11-solr_1\webapps\solr\solr_home\zoo_data下的所有文件。结果如图:
9、 到此全部配置完成,访问http://localhost:8001/solr/#/~cloud 可以看到如下结果:
2.4 多台zookeeper服务器,多台solr服务器
为了减少配置,所以这一步在2.3的基础上进行。
1、 到F:\dev\apache-tomcat-7.0.11-solr_1\webapps\solr\solr_home目录下,修改zoo.cfg文件,增加如下内容:
server.1=localhost:2888:2889
server.2=localhost:3888:3889
server.3=localhost:4888:4889
如图:
2、 到F:\dev\apache-tomcat-7.0.11-solr_1\webapps\solr\solr_home\zoo_data目录下,新建文件myid,并设内容为1。如图:
3、 到F:\dev\apache-tomcat-7.0.11-solr_2\webapps\solr\solr_home目录下,修改zoo.cfg文件,增加如下内容:
server.1=localhost:2888:2889
server.2=localhost:3888:3889
server.3=localhost:4888:4889
如图:
4、 到F:\dev\apache-tomcat-7.0.11-solr_2\webapps\solr\solr_home\zoo_data目录下,新建文件myid,并设内容为2。如图:
5、 到F:\dev\apache-tomcat-7.0.11-solr_3\webapps\solr\solr_home目录下,修改zoo.cfg文件,增加如下内容:
server.1=localhost:2888:2889
server.2=localhost:3888:3889
server.3=localhost:4888:4889
如图:
6、 到F:\dev\apache-tomcat-7.0.11-solr_3\webapps\solr\solr_home\zoo_data目录下,新建文件myid,并设内容为3。如图
7、 到F:\dev\apache-tomcat-7.0.11-solr_1\bin目录下,编辑catalina.bat文件,修改最开头的set JAVA_OPTS为:
set JAVA_OPTS=-Dbootstrap_confdir=../webapps/solr/solr_home/collection1/conf -Dcollection.configName=clusterconf -DzkRun -DzkHost=localhost:9001,localhost:9002,localhost:9003 -DnumShards=1
8、 到F:\dev\apache-tomcat-7.0.11-solr_2\bin目录下,编辑catalina.bat文件,修改最开头的set JAVA_OPTS为:
set JAVA_OPTS= -DzkRun -DzkHost=localhost:9001,localhost:9002,localhost:9003
9、 到F:\dev\apache-tomcat-7.0.11-solr_3\bin目录下,编辑catalina.bat文件,修改最开头的set JAVA_OPTS为:
set JAVA_OPTS= -DzkRun -DzkHost=localhost:9001,localhost:9002,localhost:9003
10、 清理之前运行时zookeeper生成的节点信息内容。删除下各个tomcat下的solr_home下的zoo_data文件中的version-2文件夹即可。
11、 启动apache-tomcat-7.0.11-solr_1,apache-tomcat-7.0.11-solr_2,apache-tomcat-7.0.11-solr_3,打开链接 http://localhost:8001/solr/#/~cloud 查看,结果如下:
到此为此,你可以停止任何一台solr服务器,查看下http://localhost:8001/solr/#/~cloud (当然如果你停止了端口号是8001的就换另外的tomcat服务)
展开阅读全文