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


    需求:

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

     

    步骤:

    一、    准备条件

    1.  服务器准备

           准备两台服务器:

     

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

     

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

     

    2.    软件环境

    Linux版本不限,3264位不限

    应用容器: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公用脚本实现)

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

    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

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

     分别修改两个应用的  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)   配置清理脚本

    su haiting

    crontab –e

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

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

    Wq!

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

    b)   启用快照

    手动执行

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

    c)   获取并安装快照

    配置cron

    su haiting

    crontab –e

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

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

    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 保存即可。 

    转自http://blog.csdn.net/thundersssss/archive/2009/12/29/5099232.aspx
  • 相关阅读:
    ubuntu-14.04.2-desktop-amd64.iso:ubuntu-14.04.2-desktop-amd64:安装Oracle11gR2
    ubuntu-15.04-desktop-amd64.iso:ubuntu-15.04-desktop-amd64:安装Oracle11gR2
    Ubuntu 使用文件 casper-rw 镜像文件 保存变更内容
    continue — Skip to the next iteration of a loop in a shell script
    Is there a TRY CATCH command in Bash
    tar 打包压缩
    oracle 重复只保留一条
    sed 删除 51, 54 行 输出到原文件
    ORA-01000: maximum open cursors exceeded
    Oracle 在字符串中输入单引号或特殊字符
  • 原文地址:https://www.cnblogs.com/wycg1984/p/1681337.html
Copyright © 2020-2023  润新知