您的位置:首页 > 运维架构 > Tomcat

安装配置apache-solr(使用apache-tomcat容器)

2014-03-19 17:35 639 查看
1.准备安装包:

wget http://apache.dataguru.cn/tomcat/tomcat-7/v7.0.52/bin/ wget http://mirror.esocc.com/apache/lucene/solr/4.7.0/
2.配置tomcat:



3.访问一下,看tomcat有没安装配置成功如果成功的话开始配置solr服务器(企业应用搜索服务器):



拷贝solr.war到tomcat目录:





配置solr home 有三种方法可以配置solr home,任选一种即可: 1,直接修改JAVA全局环境变量:(适用于该机器只有一个Solr实例):
1.第一种:



2.修改TOMCAT_HOME/bin/catalina.sh,在文件开头添加:JAVA_OPTS=’-Dsolr.solr.home=/usr/local/solr’;



3.创建solr.xml文件放于TOMCAT_HOME/conf/Catalina/localhost,内容如下: 可能会目录不存在,其实启动一下tomcat,目录就会有了,也可以自己创建:



我一般使用第二种方式 其实安装solr最主要的就是配置solr home,配置好之后,就可以启动tomcat了



可能会无法访问,4.4需要拷贝一些solr的jar文件过去:



再重启一下tomcat访问应该就正常了 访问测试 :



下面开始做solr的主从:

master服务器的配置:

<requestHandler name=“/replication” class=“solr.ReplicationHandler” >
<lst name=“master”>
<!– 执行commit操作后进行replicate操作同样的设置’startup’, ‘commit’, ‘optimize–>
<str name=“replicateAfter”>commit</str>
<!– 执行startup操作后进行replicate操作–>
<str name=“replicateAfter”>startup</str>
<!– 复制索引时也同步以下配置文件–>
<str name=“confFiles”>schema.xml,stopwords.txt</str>
<!– 验证信息, 由用户自定义用户名–>
<str name=“httpBasicAuthUser”>jacoxu</str>
<!– 验证信息, 由用户自定义密码–>
<str name=“httpBasicAuthPassword”>123</str>
</lst>
</requestHandler>

slave服务器的配置:

<requestHandler name=“/replication” class=“solr.ReplicationHandler” >
<lst name=“slave”>
<!– 主服务器的URL, 对于多核同步配置,一一对应即可–>
<str name=“masterUrl”>http://127.0.0.1:8080/solr/core0</str>
<!– 60秒进行一次同步操作–>
<str name=“pollInterval”>00:00:60</str>
<!– 压缩机制,来传输索引, 可选internal|external, internal内网, external外网–>
<str name=“compression”>internal</str>
<!– 设置超时时间–>
<str name=“httpConnTimeout”>50000</str>
<str name=“httpReadTimeout”>500000</str>
<!– 验证信息, 要与master服务ser器匹配–>
<str name=“httpBasicAuthUser”>jacoxu</str>
<str name=“httpBasicAuthPassword”>123</str>
</lst>
</requestHandler>
SOLR复制模式,是一种在分布式环境下用于同步主从服务器的一种实现方式,因之前提到的基于rsync的SOLR不同方式部署成本过高,被SOLR1.4版本所替换,取而代之的就是基于HTTP协议的索引文件传输机制,该方式部署简单,只需配置一个文件即可。以下讲解具体操作步骤:
步骤分主服务器和从服务器,允许有多个从服务器,即从服务器的配置一样。

主服务器:
在solrConfig.xml中:
Xml代码 收藏代码
<requestHandler name="/replication" class="solr.ReplicationHandler">
<lst name="master">
<str name="replicateAfter">commit</str>
<str name="confFiles">schema.xml,solrconfig_slave.xml:solrconfig.xml</str>
<str name="commitReserveDuration">00:01:00</str>
</lst>
</requestHandler>

说明:
replicateAfter : SOLR会自行在以下操作行为发生后执行复制: 'commit', 'startup' 'optimize',这里我们选择commit , 即SOLR每一次接受到commit请求后,会执行复制策略。
confFiles : 待分发的配置文件,solr 也会将主服务器上的字段配置文件:schema.xml和stopwords.txt,固排文件: elevate.xml同步到辅服务器上。
commitReserveDuration: 每次commit之后,保留增量索引的周期时间,这里设置为5分钟。

从服务器:

<requestHandler name="/replication" class="solr.ReplicationHandler">
<lst name="slave">
<str name="masterUrl">http://192.168.172.2:7100/solr/${solr.core.name}/replication</str>
<str name="pollInterval">00:08:00</str>
<!-- external 很容易有索引大小不对, 压缩文件损坏这2个问题, 导致复制无法进行, 且一直复制失败, 测试下来internal没任何问题 -->
<str name="compression">internal</str>
<str name="httpConnTimeout">1000</str>
<str name="httpReadTimeout">2000</str>
</lst>
</requestHandler>

说明:
masterUrl : 主服务器同步URL地址
pollInterval:从服务器同步间隔,即每隔多长时间同步一次主服务器
httpConnTimeout:设置连接超时(单位:毫秒)
httpReadTimeout:如果设置同步索引文件过大,则应适当提高此值。(单位:毫秒)
httpBasicAuthUser:验证用户名,需要和主服务器一致
httpBasicAuthPassword:验证密码,需和主服务器一致
compression:external or internal 使用SOLR自己的压缩算法或应用容器的

本文出自 “Anna--linux之家” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: