zoukankan      html  css  js  c++  java
  • 实战: 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
  • 相关阅读:
    新浪微盘又是一个给力的产品啊,
    InfoQ: 百度数据库架构演变与设计
    列式数据库——Sybase IQ
    MapR初体验 淘宝共享数据平台 tbdata.org
    IBM正式发布新一代zEnterprise大型机(组图) 大型机,IBM,BladeCenter,美国,纽约 TechWeb News
    1TB is equal to the number of how many GB? 1PB equal to is equal to the number of TB? 1EB PB? | PCfault.com
    Cassandra vs HBase | WhyNosql
    The Hadoop Community Effect
    雅虎剥离开源软件平台 Hadoop ,与风投新建 Hortonworks 公司 品味雅虎
    RowOriented Database 、ColumnOriented Database 、KeyValue Store Database 、DocumentOriented Database
  • 原文地址:https://www.cnblogs.com/wycg1984/p/1681337.html
Copyright © 2011-2022 走看看