`
kobe学java
  • 浏览: 258527 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

SOLR的分布式部署

 
阅读更多

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

 

SOLR的分布式部署

 (2011-12-07 13:03:49)
标签: 

solr

 

分布式部署

 

it

分类: 架构与开发

需求:

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

 

步骤:

一、    准备条件

  1.  服务器准备

       准备两台服务器:

 

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

 

另一台负责辅服务器(192.2.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://127.0.0.1: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 保存即可。 

 

分享到:
评论

相关推荐

    solr 分布式部署

    Solr分布式部署的目标主要有两个: 1. **主辅服务器同步**:确保每当客户端对索引进行COMMIT操作时,更新能够及时地应用到辅助服务器上。这提供了高可用性和数据一致性,即使主服务器出现问题,辅助服务器也能无缝...

    solr分布式部署

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

    ZooKeeper作为分布式协调服务,提供了高可用性以及一致性保证,而Solr则是一款高性能、可扩展的全文搜索引擎。将二者结合,可以构建出一个稳定、高效的企业级搜索解决方案。本文旨在详细介绍如何在两台CentOS 6.3 x...

    solr5.5.4部署及使用

    例如,通过SolrCloud实现分布式部署,利用Sharding和Replication提高可用性和性能,以及通过设置过滤器、分析器等进一步定制搜索行为。总之,掌握Solr的部署和使用是构建高效全文搜索引擎系统的基础,它能为企业数据...

    solr服务器部署在linux windows环境下

    Solr服务器是一款强大的开源搜索引擎,由Apache软件基金会开发,它基于Java并支持分布式搜索和处理大量数据。在Linux和Windows环境下部署Solr服务器是常见的需求,这两种操作系统各有其特点和优势。 **Linux环境下...

    Solr安装部署攻略

    Apache Solr是基于Lucene的搜索平台,它提供了一个分布式、可扩展、易用的搜索和导航基础设施。Solr支持多种数据源,并能处理大量数据,提供丰富的查询语法和自定义排序功能。 2. **系统需求** 在开始安装前,请...

    Solr部署及开发

    Solr支持多种运行模式,包括单节点模式、多节点集群(通过SolrCloud实现)和分布式部署。在生产环境中,为了提高可用性和性能,通常会选择分布式部署,利用SolrCloud实现自动复制和负载均衡。部署过程中,你需要设置...

    solr4.10.0部署文件全集(包括分词器、mysql的jar包)

    - Solr 4.10.0支持云部署(SolrCloud),允许水平扩展和分布式搜索。用户可以通过ZooKeeper协调多个Solr节点,实现高可用性和容错性。 8. **优化与维护**: - Solr提供了优化索引、删除文档、更新段合并等功能,...

    solr 部署在linux windows环境

    本篇文章将详细讲解如何在Linux和Windows环境中部署Solr。 **一、Solr在Linux环境中的部署** 1. **系统准备**:确保你的Linux系统(如Ubuntu或CentOS)已经安装了Java运行环境(JRE)和Java开发工具集(JDK)。你...

    solr4.10.2与tomcat6的整合

    将 Solr 与 Tomcat 进行整合,可以使 Solr 成为一个可被外部应用访问的服务,便于进行分布式部署和管理。 #### 二、环境准备 1. **下载所需软件**: - Solr 4.10.2 - Apache Tomcat 6.0.36 2. **解压安装**: ...

    solr(solr-9.0.0.tgz)

    而Solr则在其基础上增加了分布式搜索、集群管理、结果高亮、 faceting(分类浏览)、近实时搜索(NRT)等高级特性,使得Solr更适合企业级的搜索应用。 总的来说,Solr-9.0.0是一个强大且灵活的搜索平台,适用于需要...

    一键安装伪分布式zk集群-solr集群脚本

    标题中的“一键安装伪分布式zk集群-solr集群脚本”指的是使用自动化脚本来...在实际生产环境中,通常会使用真正的分布式部署,确保高可用性和性能。同时,了解如何手动配置和管理这些服务也有助于深入理解其工作原理。

    搭建好的solr 7.5单机版

    2. **Cloud模式**:虽然这里的版本是单机版,但Solr 7.5支持Cloud模式,可以实现分布式搜索和高可用性。这意味着即使在单机环境下,你也可以了解如何将Solr集群化,以便在未来需要扩展时做好准备。 3. **Schema设计...

    积分商城基于Solr搜索引擎PPT

    1. 积分商城现状 2. 搜索领域知识、原理、应用 3. Solr简介、部署及中文分词 4. SolrJ项目中应用 5. Solr分布式应用 6. 大型网站架构分析

    最新版windows solr-8.8.2.zip

    1. **分布式搜索**:Solr支持在多台服务器上分布式部署,通过Sharding和Replication技术,能够处理海量数据,并实现快速的搜索响应。 2. **灵活的数据导入**:Solr提供了DataImportHandler(DIH),可以方便地从...

    alfresco4.0部署及分离solr

    Solr,则是Apache软件基金会的一个开源搜索引擎项目,常用于全文检索、分布式搜索和分析。在Alfresco中集成Solr可以提升内容的搜索性能。本篇文章将详细介绍如何在Windows环境下部署Alfresco 4.2.c版本,并将其内置...

    Apache Solr(solr-8.11.1-src.tgz)

    2. **分布式搜索**:Solr支持分布式部署,可以在多台服务器上分布数据,提供高可用性和水平扩展性。 3. **实时索引**:Solr能够实时地处理新数据的索引和搜索,提高了系统的响应速度。 4. **多字段搜索**:支持对多...

    solr解压版安装包

    同时,Solr支持分布式部署,通过Cloud模式实现多节点集群,提高可扩展性和容错性。 总的来说,Solr是一个强大的搜索平台,提供了丰富的功能和高度的可定制性。通过解压版安装,开发者可以快速搭建搜索环境,进行...

Global site tag (gtag.js) - Google Analytics