SolrCloud是solr的一个分布式解决方案,本文简单介绍下SolrCloud的环境配置。由于实际的生产环境主要是linux系统,所以本篇将在linux系统下进行。
本文采用 solr4.7 + zookeeper3.4.6 (standalone模式)
1 配置两台单机solr服务,可参照这里(linux和windows下大体相似)
2 安装zookeeper服务, 下载解压 zk ,解压后 进入 /zookeeper-3.4.6/conf 目录 将zoo_sample.cfg 修改为 zoo.cfg,将文本内容修改为
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/opt/qmTomcat7/zkdata //zk内容所在路径 clientPort=3181 //端口
进入/zookeeper-3.4.6/bin 目录 ,执行 ./zkServer.sh start 启动服务,然后执行 ./zkServer.sh status 查看是否启动成功
3 将tomcat和zk关联
进入tomcat/bin路径下,将
export JAVA_OPTS="-DzkHost=58.30.66.31:3181 -Dbootstrap_conf=true"
加入到catalina.sh中
4 进入到 solrhome路径下,修改solr.xml文件,将hostport修改为对应tomcat的端口号
<solr> <solrcloud> <str name="host">${host:}</str> <int name="hostPort">${jetty.port:7777}</int><!-- 对应的tomct端口号--> <str name="hostContext">${hostContext:solr}</str> <int name="zkClientTimeout">${zkClientTimeout:15000}</int> <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool> </solrcloud> <shardHandlerFactory name="shardHandlerFactory" class="HttpShardHandlerFactory"> <int name="socketTimeout">${socketTimeout:0}</int> <int name="connTimeout">${connTimeout:0}</int> </shardHandlerFactory> </solr>
5 修改 solrcore下的 solrconfig.xml文件,将该段文本加上注释
<!-- <lib dir="../../../contrib/extraction/lib" regex=".*\.jar" /> <lib dir="../../../dist/" regex="solr-cell-\d.*\.jar" /> <lib dir="../../../contrib/clustering/lib/" regex=".*\.jar" /> <lib dir="../../../dist/" regex="solr-clustering-\d.*\.jar" /> <lib dir="../../../contrib/langid/lib/" regex=".*\.jar" /> <lib dir="../../../dist/" regex="solr-langid-\d.*\.jar" /> <lib dir="../../../contrib/velocity/lib" regex=".*\.jar" /> <lib dir="../../../dist/" regex="solr-velocity-\d.*\.jar" /> -->
6 分别启动tomcat
结束语:由于本文是留给自己参考使用,中间若有疏漏可以咨询。我本人也参考了不少别人的配置步骤,发现有少量的人一发现文章里面有错误或者是按照文章所讲的配置不成功就开始骂文章的作者,
我觉得是实在不应该的,首先我们作为一名程序员应该知道有的时候一个小的细节就能导致整个项目的失败,你怎么知道不是因为自己的失误而导致出错呢,其次,我们再遇到异常提示的时候不应该慌张,
应该在见到异常提示的时候就像见到亲人一样亲切,然后根据提示一步步的查找、定位,这样也许当你查着查着发现自己在配置成功的同时对整个项目有了一切额外的认识。还有就是大家在网上写的文章
可能版本不同,配置的方式稍微有所差别,但是本质都是一样的,看的时候 需要有点耐心,可以在配置之前先大体了解下整个solr的架构,以及熟悉下一些基本的名词等等。(乱七八糟地瞎扯了这么多,祝大家
成功解决掉项目需求,技术进步,保持一个好的心情)