`

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

阅读更多

开场白:

简单讲述如何配置独立的外部 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服务器根目录下。(如果没看之前文章的朋友,这里解释一下solrappsolr-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
分享到:
评论
4 楼 zhengchao860730 2013-08-08  
tanghanlin 写道
总体不错,还有更深入的更新么?

比较忙。  自己也在学习中。  呵呵。 慢慢更新吧
3 楼 zhengchao860730 2013-08-08  
青春的、脚步 写道
??有没有气动很慢的感觉

目前没有呀。。 启动快慢指标是什么? 
2 楼 青春的、脚步 2013-08-01  
??有没有气动很慢的感觉
1 楼 tanghanlin 2013-05-15  
总体不错,还有更深入的更新么?

相关推荐

    ZooKeeper实例 + Solr(tomcat)集群部署

    ### ZooKeeper实例与Solr(tomcat)集群部署详解 #### 一、部署背景与目的 在大数据处理和搜索引擎技术领域,ZooKeeper与Solr是两个不可或缺的技术组件。ZooKeeper作为分布式协调服务,提供了高可用性以及一致性保证...

    solrCloud5.2.1 + tomcat7 + zookeeper3.4.6

    依次启动三个Tomcat实例,并通过浏览器访问`http://localhost:8080/solr`、`http://localhost:8081/solr`、`http://localhost:8082/solr`来验证配置是否正确。 在完成上述步骤后,你就成功地在Windows 7环境下搭建...

    Tomcat+solrcloud6.2整合Web项目

    《Tomcat+SolrCloud6.2整合Web项目详解》 在现代的互联网环境中,高效、精准的全文搜索引擎已经成为各种Web应用不可或缺的一部分。Solr,作为Apache Lucene的一个子项目,以其强大的搜索功能和易扩展性深受开发者...

    SolrCloud5.2.1+tomcat7+zookeeper3.4.6搭建教程.docx

    SolrCloud是一个分布式搜索引擎系统,基于Apache Solr...每个Tomcat实例都可以独立运行并处理Solr请求,Zookeeper负责协调和同步集群状态。这使得SolrCloud具有高可用性和可伸缩性,适合处理大数据量的搜索和分析任务。

    SolrCloud4.9.0+tomcat7+zookeeper-3.4.6搭建教程

    SolrCloud4.9.0+Tomcat7+Zookeeper3.4.6搭建教程 SolrCloud是Apache Lucene项目下的一个基于分布式搜索引擎,通过将多个Solr实例组合成一个集群,可以实现高可用性和高性能的搜索系统。Tomcat是Apache软件基金会的...

    SolrCloud5.2.1+tomcat7+zookeeper3.4.6搭建教程

    ### SolrCloud 5.2.1 + Tomcat 7 + Zookeeper 3.4.6 搭建教程 #### 一、环境准备 **软件环境:** - **操作系统:** Windows 7 - **Tomcat 版本:** 7.0.56 - **Solr 版本:** 5.2.1 - **Zookeeper 版本:** 3.4.6 **...

    solr-zookeeper-tomcat集群搭建

    Solr-Zookeeper-Tomcat集群搭建教程 在大数据和搜索引擎领域,Apache Solr是一个非常流行的全文检索服务。它能够提供高效、可扩展的搜索和分析功能。为了实现高可用性和负载均衡,通常会将Solr部署在分布式环境中,...

    SolrCloud 整合 Tomcat_手册

    SolrCloud 整合 Tomcat 是一种常见的部署方式,它允许你将 Apache Solr 集群与 Apache Tomcat 应用服务器结合,以便在分布式环境中运行和管理 Solr 搜索服务。以下是对整合过程的详细说明: 1. **软硬件环境**: -...

    Tomcat上部署SolrCloud.txt

    4. **创建Zookeeper标识文件**:在每个Zookeeper节点的数据目录下创建一个名为`myid`的文件,用于唯一标识该Zookeeper实例。 - 示例命令: - `vi /home/myuser/zookeeper/data/myid` - 在文件中写入对应节点的ID...

    zookeeper-solr集群

    - 在每个Tomcat服务器上启动Tomcat,Solr服务会自动解压`solr.war`并创建核心实例。 - 使用`bin/solr start -cloud -zkhost &lt;Zookeeper地址列表&gt;`命令启动SolrCloud,指定Zookeeper集群的地址。 5. **创建索引和...

    solrCloud的集群部署

    - **独立应用**:Solr5.x被设计为一个独立的应用程序,不再依赖于外部容器如Tomcat等。它内置了一个Jetty服务器,可以直接通过bin目录下的脚本启动。 - **应用模式**:Solr5.x支持两种应用模式——独立模式...

    solrcloud 高可用集群搭建

    SolrCloud高可用集群搭建是实现大规模、分布式搜索引擎的关键步骤,它通过集成Zookeeper来管理和协调各个Solr节点,确保数据的一致性和可用性。在搭建过程中,我们需要遵循一定的步骤和配置,以下是一些关键的知识点...

    solr集群安装部署

    你需要在至少三个不同的服务器上部署Zookeeper实例,以实现容错。配置Zookeeper配置文件`conf/zoo.cfg`,包括`dataDir`(存储快照和日志的位置)、`clientPort`(Zookeeper客户端连接端口)以及`server`节点列表。 ...

    tomcat+solr3.6+mmseg4j

    1. **SolrCloud**:Solr3.6引入了分布式搜索和管理功能,称为SolrCloud,提供了Zookeeper协调和配置存储。 2. **Collections API**:用于管理和操作Solr集合的RESTful API。 3. **Sharding**:通过分割数据到多个分...

    solr搭建教程文档

    4. 验证:启动所有Tomcat实例,通过不同端口访问Solr的admin页面。 **四、配置ZooKeeper集群** 1. 解压Zookeeper:将Zookeeper解压到`solrCloud`目录,命名为`zookeeper-1`。 2. 修改配置:将`zoo_sample.cfg`...

    solr_Tomcat_lib包

    5. **云支持**:在分布式环境中,`lib`目录会包含`solrcloud.jar`,提供SolrCloud的功能,包括Zookeeper协调和集群状态管理。 6. **其他依赖**:Solr还可能依赖于其他第三方库,如`jackson*`系列的JAR文件用于JSON...

    solr5.3.1集群搭建教程-线上环境搭建

    整个过程分为几个阶段:准备软件环境、部署单机版Tomcat 7 + Solr 5.2.1、配置多Tomcat实例以支持Solr集群以及最后配置ZooKeeper集群来确保Solr集群的稳定性和高可用性。 **软件需求:** - **Tomcat 7:** 版本...

Global site tag (gtag.js) - Google Analytics