`
kobe学java
  • 浏览: 249933 次
  • 性别: 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 分布式 部署,介绍了Solr的分布式部署的需求,步骤,配置、执行分发脚本等。

    solr分布式部署

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

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

    Hadoop+Hbase+Solr(集成中文分词)分布式部署流程

    由于早期项目的客户服务器重新规划,原来部署应用的员工已离职且部署文档不完整,所以用三个虚机节点搭了简单的Hadoop+Hbase+Solr的环境并形成部署步骤文档给运维人员参考,有兴趣的可以下载一下,以上。

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

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

    solr 5.5.5

    solr是将整个索引操作功能封装好了的搜索引擎系统(企业级搜索引擎产品) ,可以部署到单独的服务器上(WEB服务),它可以提供服务,我们的业务系统就只要发送请求...solr支持分布式集群,索引服务的容量和能力可以线性扩展

    大型java分布式电商项目实战

    大型电商项目实战:Solr+FastDFS+Zookeeper+Freemarker+Quartz+SpringMVC+Mybatis集群分布式部署在线电商项目,高并发,高可用,高高负载有响应的解决方案,对于自己的技术水平拔高有很大的促进作用,

    solrcloud 高可用集群搭建

    SolrCloud是Solr4.0版本以后基于Solr和Zookeeper的分布式搜索方案。SolrCloud是Solr的基于Zookeeper一种部署方式。Solr可以以多种方式部署,例如单机方式,多机Master-Slaver方式。

    apache solr1.3.0所有最新开发包及源码及文档

    ——分布式搜索性能 ——许多Lucene和其他性能的改进 ——支持在单个部署中的多级索引 ——SolrJ客户端和一个二元响应协议,支持更快的客户端-服务器通信 ——搜索组件可以被组成链式结构,用来提供更灵活的查询...

    分布式全文检索系统SolrCloud简介

    SolrCloud是Solr4.0版本开发出的具有开创意义的基于Solr和Zookeeper的分布式搜索方案,或者可以说,SolrCloud是Solr的一种部署方式。Solr可以以多种方式部署,例如单机方式,多机Master-Slaver方式,这些方式部署的...

    dubbo分布式全套视频

    基于ssm构建项目,用dubbo实现分布式开发部署,用zookeeper作为dubbo注册中心,用redis作为缓存,用solr实现搜索引擎,便于分布式整合入门教程,新手更是值得拥有,文件是百度云链接如果失效可以加我qq索取,文件内有我...

    Hbase 二级索引方案

    以参看:SolrCloud 分布式部署。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功 能,Solr 是一个高性能,采用 Java5 开发,基于 Lucene 的全文搜索服务器。同时对其进行 了扩展,提供了比 Lucene 更为丰富的...

    JavaEE大型分布式电商项目 淘淘商城 29期

    淘淘商城是一个综合性的B2C平台,类似与京东、天猫商城,其打造的是商业模式为“社区+电子商务”, 用户不只是...分布式部署架构讲解以及实施 分组实战 + 项目总结以及就业指导 拔高--Redis集群、Tomcat优化、MySQL优化

    自己动手写搜索引擎(罗刚著).doc

    8.1 使用Solr实现分布式搜索 232 8.1.1 Solr服务器端的配置与中文支持 232 8.1.2 把数据放进Solr 237 8.1.3 删除数据 240 8.1.4 客户端搜索界面 241 8.1.5 Solr索引库的查找 242 8.1.6 索引分发 246 8.1.7 Solr搜索...

    SolrCloud集群部署

    SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。此文档参考培训机构资料,适合初学者参考使用。

    Java微服务架构l零从基础到精通高清视频教程全套 163课

    149 Solr 全文搜索引擎-Solr 服务器部署 150 Solr 全文搜索引擎-Solr 配置字段域 151 Solr 全文搜索引擎-Solr 维护功能 152 Solr 全文搜索引擎-Solr 查询与高亮显示 153 Solr 全文搜索引擎-Spring Boot 集成 Solr ...

    Java微服务架构163课

    149 Solr 全文搜索引擎-Solr 服务器部署 150 Solr 全文搜索引擎-Solr 配置字段域 151 Solr 全文搜索引擎-Solr 维护功能 152 Solr 全文搜索引擎-Solr 查询与高亮显示 153 Solr 全文搜索引擎-Spring Boot 集成 ...

    大型分布式网站架构与实践

     垂直化的搜索引擎在分布式系统中的使用,包括搜索引擎的基本原理、Lucene详细的使用介绍,以及基于Lucene的开源搜索引擎工具Solr的使用。  2.1 分布式缓存 60  2.1.1 memcache简介及安装 60  2.1.2 memcache ...

    JSP打造大型分布式B2C商城项目视频教程

    08.第八天(solr服务器搭建、搜索功能实现) 09.第九天(商品详情页面实现) 10.第十天(单点登录系统实现) 11.第十一天(购物车+订单) 12.第十二天(系统架构讲解、nginx) 13.第十三天(生产环境搭建、系统部署) 14.第十四...

Global site tag (gtag.js) - Google Analytics