WEB开发网
开发学院软件开发Delphi 实战: SOLR的分布式部署(复制模式 CollectionDi... 阅读

实战: SOLR的分布式部署(复制模式 CollectionDistribute)部署流程详解 (二)

 2009-12-30 14:40:27 来源:WEB开发网   
核心提示:需求:实现SOLR主,辅服务器更新同步,实战: SOLR的分布式部署(复制模式 CollectionDistribute)部署流程详解 (二),每次客户端COMMIT请求都会及时应用在辅服务器上, 实现MULTICORE,清理不用的快照b) 启用快照手动执行 /solr/video/bin/snappuller-ena
需求:

实现SOLR主,辅服务器更新同步,每次客户端COMMIT请求都会及时应用在辅服务器上。
实现MULTICORE,实际生产环境中往往会有多个搜索应用实例。


步骤:

一、  准备条件

服务器准备
    准备两台服务器:



一台用作主服务器(192.168.0.36),负责分发索引



另一台负责辅服务器(192.168.0.46),负责承载搜索服务。



2.  软件环境

linux版本不限,32,64位不限

应用容器:TOMCAT 6.0

java版本:JDK1.6以上版本

Solr应用环境目录: /solr/video/ (可使用ln –s 创建软连接) 和 /solr/album/

(本例设定为两个应用:实际情况可自由增减  )

Solr索引目录:/solr/data/album 和 /solr/data/video

3. 划分应用 

   本例中划分两个应用 专辑 album 和 视频 video

4.  基础目录创建(主,辅均需配置)

a)  在 /solr/ 应用环境目录下创建两个目录:album 和 video

b)  分别将SOLR安装目录下Solr/example/solr/conf文件夹至这两个目录

c)  分别复制安装目录solr/src/scripts文件夹至 album 和 video目录,并将script改名为bin(后续要用到)

d)  按照特定需求分别修改索引字段结构文件: schema.xml(有关此文件的配置不再撰述)

e)  复制 Solr/example/multicore 下的solr.xml文件至 应用环境根目录:/solr/

f)   创建索引目录 /solr/data/album 和 /solr/data/video



二、  配置MULTICORE(主,辅均需配置)

    划分业务类型,如做一个视频搜索引擎需要专辑和视频两大应用,则:



1)  配置SOLR业务类型:在 /solr/下 编辑solr.xml文件

        <core name="core0" instanceDir="core0" />
         <core name="core1" instanceDir="core1" />

 
 
修改为  
<core name="album" instanceDir="album" />
        <core name="video" instanceDir="video" />





2)  指定索引目录,进入/solr/album/conf目录,打开编辑器修改solrconfig.xml,找到<dataDir> 节点,将真正的目录“/solr/data/album”替换掉原有数据。(视频应用步骤与此相同。)

       

三、  配置分布式应用(以下均在主服务器上配置)

1)  分别修改分布式分发脚本: scripts.conf

(/solr/album/bin 和 /solr/video/bin)

#触发外部命令所使用的用户

user=haiting

#本地机器名

solr_hostname=localhost

#本地SOLR开放的端口(及TOMCAT服务端口)

solr_port=9001

#分发脚本使用的RSYNC服务端口,业务端口要区分开,在本例中,album为19001,video为19002,客户端与服务端端口设置需一致,否则会导致SNAPPULLER过程失败。

rsyncd_port=19001

#索引文件路径

data_dir=/solr/data/album

#TOMCAT容器中SOLR服务名(默认不变)

webapp_name=solr

#主服务器IP(主与辅同配置)

master_host=192.168.0.46

#主服务器索引文件路径

master_data_dir=/solr/data/album

#主服务器状态过程日志存放目录

master_status_dir=/solr/status/album

2)   修改脚本所在默认路径

(通过修改scripts-util公用脚本实现)

l 找到该文件所在路径:/solr/album/bin和/solr/video/bin

l 第27行

confFile=${solr_root}/conf/scripts.conf

修改为:

confFile=/solr/bin/album/conf/scripts.conf



confFile=/solr/bin/video/conf/scripts.conf



注明:不进行此步骤会造成SOLR外部调用监听器执行会失败(/solr/)  

3)   修改主配置文件solrconfig.xml

l 找到以下目录:/solr/album/conf和 /solr/video/conf

l  分别修改两个应用的 COMMIT监听器,使得SOLR接收到COMMIT请求时,自动调用外部命令snappuller

找到 postCommit 节点,配置后的节点如下所示:

  <listener event="postCommit" class="solr.RunExecutableListener">

   <str name="exe">/solr/video/bin/snapshooter</str>

   <str name="dir">.</str>

   <bool name="wait">true</bool>

   <arr name="args"> <str>-d</str> <str>/solr/data/video</str> </arr>

   <arr name="env"> <str>MYVAR=val1</str> </arr>

</listener>



注明:每一个应用对应的配置文件都需要配置,包括外部命令的目录.









四、   配置、执行分发脚本

1.    主服务器

1)  启动SOLR

2)  启用RSYNC

手工执行脚本:

/solr/video/bin/rsyncd-enable –v

说明:-v终端打印执行详细日志

3)  开启RSYNC

/solr/video/bin/rsyncd-start –v





2.    客户端

推荐使用SolrJ(目录位于/solr/src/solrj)

a)     将SOLR接收URL改为:http://192.168.0.36:9001/solr/video

(或http://192.168.0.36:9001/solr/album )

b)     执行发送命令,将数据推送至主服务器



3.    辅服务器

a)  配置清理脚本

l su haiting

l crontab –e

l 0 0 * * * /solr/album/bin/snapcleaner -D 7

l 0 0 * * * /solr/video/bin/snapcleaner -D 7

l Wq!

说明:系统每7天调用一次清理脚本,清理不用的快照

b)  启用快照

手动执行

/solr/video/bin/snappuller-enable -v

c)  获取并安装快照

l 配置cron

l su haiting

l crontab –e

l */5 * * * * /solr/video/bin/snappuller;/solr/video/bin/snapinstaller

l */5 * * * * /solr/album/bin/snappuller;/solr/album/bin/snapinstaller

l wq!



说明:系统每五分钟调用一次smappuller和snapinstaller,及每五分钟生效一次。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/thundersssss/archive/2009/12/29/5099232.aspx

Tags:实战 SOLR 分布式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接