首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

SOLR的分布式调度

2012-06-26 
SOLR的分布式部署转载:http://blog.sina.com.cn/s/blog_56fd58ab0100vwmh.html??????????????????core na

SOLR的分布式部署

转载:http://blog.sina.com.cn/s/blog_56fd58ab0100vwmh.html

?

?????????????????<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://127.0.0.1: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,及每五分钟生效一次。

        ?

        ????????????????本文补充: 因SOLR的复制分发模式所需要的脚本没有考虑到 MULTICORE模块存在,所以在两种并行的情况下会造成快照安装失败,报 logMessage snapshot installed but Solr server has not open a new Searcher 错误。 具体修改方法: 在/solr/album/bin 和 /solr/video/bin 下修改commit文件,将第三页中的 curl_url=http://${solr_hostname}:${solr_port}/${webapp_name}/update 修改成 curl_url=http://${solr_hostname}:${solr_port}/${webapp_name}/album/update 保存即可。?

        ?

热点排行