开场白:
简单讲述如何配置独立的外部 ZooKeeper 集群管理组件来管理 solr集群(多实例solr)
本章建立在 Solr学习(一) 、Soer学习(二)基础上进行配置。
声明:描述的比较笼统繁琐,有偏差的地方请大家毫不留情的拍砖
完成目标:
单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的项目根目录(解压后的目录,尽量不要放在中文目录中)如下图
开始生产:
步骤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学习一 )
同样,把“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文件夹。
步骤6:
打开“8080服务器”路径“E:\apache-tomcat-6.0.35\solrapp\solr”找到项目内的“sor.xml”打开找到“cores”节点。改为如下配置。
<cores adminPath="/admin/cores" defaultCoreName="collection1" host="localhost" hostPort="8080" hostContext="solr" zkClientTimeout="${zkClientTimeout:15000}">
<core name="collection1" instanceDir="collection1" />
</cores>
(同上)打开“9090服务器”路径“E:\apache-tomcat-6.0.35\solrapp\solr”找到项目内的“sor.xml”打开找到“cores”节点。改为如下配置
<cores adminPath="/admin/cores" defaultCoreName="collection1" host="localhost" hostPort="9090" hostContext="solr" zkClientTimeout="${zkClientTimeout:15000}">
<core name="collection1" instanceDir="collection1" />
</cores>
上注意面2个solr.xml 并不是 tomcat\conf\Catalina\localhost目录下的。而是在 \solrapp\solr目录下的。请别弄错了。 xml中defaultCoreName值如果你之前有改变solr的配置,请自行更改,否则照抄我代码, host是ip地址,hostPort则为端口,2个tomcat的端口不一样。注意!
步骤7:
既然是集群,要选举一个默认的solr老大对吧。(关于zookeeper选举老大的原则后续在说)
哈哈。 我指定“8080服务器”的“solr”服务为默认老大。
打开“8080服务器”目录下的bin目录,“E:\apache-tomcat-6.0.35\bin”找到文件“catalina.bat”编辑它(再次建议用UE打开,注意文件编码)在文件第二行加入
Set JAVA_OPTS=-Dbootstrap_confdir=../solrapp/solr/collection1/conf -Dcollection.configName=clusterconf -DzkRun -DzkHost=localhost:2181 -DnumShards=1
注意黄色字体部分。需要根据个人情况不同做不同配置。
“../solrapp/solr/collection1/conf”这个就是 “E:/apache-tomcat-6.0.35.8080/solrapp/solr/collection1/conf”的后半段。自己看清楚啦。
然后开始分配小弟(目前刚做老大,只有一个小弟跟着)“9090服务器”是小弟“catalina.bat”文件。第二行加入(别弄错了是9090的文件。)
set JAVA_OPTS= -DzkHost=localhost:2181
只要指明zookeeper的路径位置即可。(如果你有很多个小弟。你其他小弟也这么配。)
此时完成了配置了。
测试阶段:
我们测试下!~首先打开zookeeper服务,再分别打开 8080 和 9090 tomcat 服务(注意要先打开zookeeper服务,后开tomcat)。之后IE里头输入 http://localhost:8080/solr
出现以上图就OK了。 完成~
此时我们关掉其中的一个服务。。 我关了8080服务(废了老大)。 此时我们打开 9090服务地址。
http://localhost:9090/solr
发现此时 8080已经 gone了。 现在9090暂时变成了老大
目前为止。 单zookeeper和多solr的配置已经完成了。 谢谢观赏。
小贴士(加入你在启动时候发现,只看到一个solr服务。说明配置有问题,此时修改配置后,需要删除zookeeper的数据文件。 还记得吗? 数据文件地址在 X:\zookeeper-3.4.5\conf 下的zoo.cfg里头写着呢。 打开看看吧。 其实zookeeper是可以自动横向扩容的。 只是这里没配置。 )
- 大小: 47.2 KB
- 大小: 36.8 KB
- 大小: 9.2 KB
- 大小: 7.6 KB
分享到:
相关推荐
ZooKeeper实例 + Solr(tomcat)集群部署
Win7 下面 安装solrCloud5.2.1 + tomcat7 + zookeeper3.4.6 集成。 有安装步骤,裁图和说明 1分物超所值 哈哈
solrcloud5结合zookeeper搭建、使用详解,是一部难得的好教程
solr4.9+tomcat+zookeeper集群
linux+tomcat+mysql+solr调优,整理的比较粗糙,给大家分享参考下
以上代码整合spring所有的配置 整合到项目过程 包括CloudSolrClient使用
SolrCloud使用 SolrCloud的集合(SolrCores)管理API 添加集合 http://localhost:8080/solr/admin/collections?action=CREATE&name=mycollection&numShards=1&replicationFactor=4 ...
关于solr5.2.1+tomcat7+zookeeper3.4.6在windows下的部署,你值得一看
这个主要是整合了solr的spring+hibernate+webservice的一个框架代码,给大家讲解了solr的批次汇入和增删改查方法的实现方式,给初学者一些代码参考,希望能够帮助大家
solr+ tomcat 项目整合!
集群搭建(zookeeper集群+solr集群)整个步骤本人亲身实践过,如果自身电脑配置高,可以尝试模拟真实服务器进行搭建;
solr 5.0.0 + tomcat7 安装 + IKAnalyzer中文分词操作, 步骤详细可用,包含 IKAnalyzer的jar
solr+tomcat完成搜索功能,solr+tomcat完成搜索功能,solr+tomcat完成搜索功能
整合了tomcat和solr,和ik分词器 里面有对应JAR包 然后也连接了数据库,用得时候记得改data-config.xml 里面你得数据库地址和密码!!还有managed-schema这个里面得对应字段得名称和类型
大数据简历 内含三个项目: 项目一:联通大数据项目 项目名称: 移动终端上网数据实时分析处理系统; ...系统架构: hadoop+zookeeper+httpclient+htmlcleaner+hbase+redis+solr+flume+kafka+storm
solrcloud部署;作者:家和一定万事兴; 参考文章:2014-02-19,于测试机器上部署solrcloud;
Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr可以独立运行在Jetty、Tomcat等这些Servlet容器中。
这是我整理的关于Solr的技术培训资料,它包含了关于Solr的基础知识和高级应用,例如分组、分词器、权重等问题,因为本人在学习solr时发现资源太少,所以整理了一些,当然由于本人技术不足,难免知识点不够全面,有...
SolrCloud是Solr4.0版本以后基于Solr和Zookeeper的分布式搜索方案。SolrCloud是Solr的基于Zookeeper一种部署方式。Solr可以以多种方式部署,例如单机方式,多机Master-Slaver方式。
Java 分布式项(SSM、分布式Dubbo、全文检索Solr、Vue、Zookeeper、文件系统FastDFS、缓存Redis、单点登录CAS,权限控制Spring Security,跨域CORS) 技术选型 后端框架采用 Spring + SpringMVC + MyBatis + DubboX...