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

基于tomcat的solr4.0集群部署

2012-11-29 21:49 549 查看
TOMCAT[/b]中[/b]SOLR3.5[/b]迁移为[/b]4.0[/b]部署文档[/b]
基于官网Example A: Simple two shard cluster

一、工具准备

1.1原3. 5版本SOLR/HOME文件
1.2 4.0版本SOLR:apache-solr-4.0.0.tgz
1.3 已经能正常运行的TOMCAT模式下的SOLR3. 5环境服务器

二、配置过程

2.1 解压新版本文件

tar zxvf apache-solr-4.0.0.tgz -C /opt/solr4.0
cp /opt/solr4.0/dist/apache-solr-4.0.0.war /usr/local/tomcat/webapps
unzip apache-solr-4.0.0.war -d /usr/local/tomcat/webapps/solr

2.2 新增文件solr.xml

在/usr/local/tomcat/conf/Catalina/localhost新增文件solr.xml
vim /usr/local/tomcat/conf/Catalina/localhost/solr.xml
<?xml version="1.0" encoding="utf-8"?>
<Context docBase="/usr/local/tomcat/webapps/solr" debug="0" crossContext="true">
<Environment name="solr/home" type="java.lang.string" value="/opt/solr" override="true" />
</Context>
也可以在/usr/local/tomcat/conf/server.xml中配置
<Context path="/solr" docBase="/usr/local/tomcat/webapps/solr" debug="0" crossContext="true">
<Environment name="solr/home" type="java.lang.String" value="/opt/solr " override="true" />
</Context>
说明:指定SOLR/HOME文件存放位置

2.3 文件复制

2.3.1复制原/usr/local/tomcat/webapps/solr/home目录中所有文件到/opt/solr中
2.3.2复制zoo.cfg配置文件到此目录中
2.3.3复制admin-extra.html、admin-extra.menu-bottom.html 和 admin-extra.menu-top.html到每个CORE 的CONFIG目录中
2.3.4复制start.jar 到/usr/local/tomcat/bin目录中
cp /opt/solr4.0 /usr/local/tomcat/bin

2.4 修改 solr.xml 配置文件

vim /opt/solr/solr.xml
<cores adminPath="/admin/cores" defaultCoreName="collection1" host="${host:}" hostPort="${jetty.port:}" hostContext="${hostContext:}" zkClientTimeout="${zkClientTimeout:15000}">
<core name="collection1" instanceDir="collection1" dataDir="/opt/solr/clusters/collection1"/>
<core name="order" instanceDir="order" dataDir="/opt/solr/clusters/order"/>
</cores>
</solr>
修改如下:
host修改为本机HOSTNAME名字(默认也可)

hostport修改为SOLR集群运行端口(默认为8983)

每个core 增加一个数据存放位置 例:dataDir="/opt/solr/clusters/collection1"

2.5 修改 solrconfig 配置文件

2.5.1修改配置solrconfig 中 <luceneMatchVersion>LUCENE_40</luceneMatchVersion> (34修改为40)
2.5.2修改配置solrconfig 中将<indexDefaults> and <mainIndex> 合并为字段<indexConfig></indexConfig>
2.5.3 在如下位置增加配置
338行增加
<updateLog>
<str name="dir">${solr.data.dir:}</str>
</updateLog>
1024启用
<requestHandler name="/replication" class="solr.ReplicationHandler" >
768增加
<requestHandler name="/query" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<str name="wt">json</str>
<str name="indent">true</str>
<str name="df">text</str>
</lst>
</requestHandler>

<requestHandler name="/get" class="solr.RealTimeGetHandler">
<lst name="defaults">
<str name="omitHeader">true</str>
<str name="wt">json</str>
<str name="indent">true</str>
</lst>
</requestHandler>
971行启用
<requestHandler name="/admin/"
class="solr.admin.AdminHandlers" />
其它修改(需开发配合开启自动同步) http://wiki.apache.org/solr/UpdateRequestProcessor <updateRequestProcessorChain name="sample">
<processor class="solr.LogUpdateProcessorFactory" />
<processor class="solr.DistributedUpdateProcessorFactory"/>
<processor class="my.package.UpdateFactory"/>
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>

2.6 修改schema.xml 配置文件

160行增加
<field name="_version_" type="long" indexed="true" stored="true"/>
说明:用于更新版本号也可不加

2.7 修改SOLR/HOME权限

chmod 755 /opt/solr
chown -R tomcat:tomcat /opt/solr (设置目录的权限为执行用户和组所有)

三 设置程序启动

3.1.主服务器配置

3.1.1未设置开机自动启动
vim /usr/local/tomcat/bin/catalina.sh
在20行增加
export JAVA_OPTS="$JAVA_OPTS -Dsolr.solr.home=/opt/solr -Dbootstrap_confdir=/opt/solr/collection1/conf,/opt/solr/order/conf -Dbootstrap_confdir=/opt/solr/collection1/conf -DzkRun -DnumShards=2 -Dcollection.configName=clusterconf"
说明:
-Dsolr.solr.home solr/home位置
-DzkRun -DnumShards=2 -Dcollection.configName=clusterconf"
-DzkRun 是启动内置的zookeeper服务器
-Dbootstrap_confdir 是solr conf的目录
-DnumShards 是指要启动shards的数目
-Dcollection.configName 配置文件的名称
180行修改为
CLASSPATH="$CLASSPATH""$CATALINA_BASE"/bin/tomcat-juli.jar:"$CATALINA_HOME"/bin/bootstrap.jar:"$CATALINA_HOME"/bin/start.jar
3.1.2使用JSVC启动修改方法
vim /etc/init.d/tomcat
CATALINA_OPTS="-Xms1024m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m -Xss128k -Djava.awt.headless=true -XX:+HeapDumpOnOutOfMem
oryError -Dis.schedule.on=true -Dsolr.solr.home=/opt/solr -Dbootstrap_confdir=/opt/solr/collection1/conf,/opt/solr/order/conf -Dbootstrap_confdir=/opt/solr/collection1/conf -DzkRun -DnumShards=2 -Dcollection.configName=clusterconf "
在 $CATALINA_HOME/bin/bootstrap.jar下增加并修改为
$CATALINA_HOME/bin/bootstrap.jar\
$CATALINA_HOME/bin/ start.jar

3.2其他服务器配置

3.2.1未设置开机自动启动
vim /usr/local/tomcat/bin/catalina.sh
在20行增加
export JAVA_OPTS="$JAVA_OPTS -Dsolr.solr.home=/opt/solr -DzkHost=域名:9983"
说明:-DzkHost 指定服务器位置及服务端口, 需要在客户端HOSTS中指定服务器的域名
默认情况下,嵌入式zookeeper服务器上运行的Solr端口加1000,所以9983
180行修改为
CLASSPATH="$CLASSPATH""$CATALINA_BASE"/bin/tomcat-juli.jar:"$CATALINA_HOME"/bin/bootstrap.jar:"$CATALINA_HOME"/bin/start.jar

3.2.2使用JSVC启动修改方法
vim /etc/init.d/tomcat
CATALINA_OPTS="-Xms1024m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m -Xss128k -Djava.awt.headless=true -XX:+HeapDumpOnOutOfMem
oryError -Dis.schedule.on=true -Dsolr.solr.home=/opt/solr -DzkHost=域名:9983"
说明:-DzkHost 指定服务器位置及服务端口, 需要在客户端HOSTS中指定服务器的域名
默认情况下,嵌入式zookeeper服务器上运行的Solr端口加1000,所以9983
例:vim /etc/hosts
"192.168.1.* 域名"
在 $CATALINA_HOME/bin/bootstrap.jar下增加并修改为
$CATALINA_HOME/bin/bootstrap.jar\
$CATALINA_HOME/bin/ start.jar
参考文献: http://wiki.apache.org/solr/SolrCloud http://hi.baidu.com/llz5023/item/0225231023f03f737b5f2577 http://www.sentric.ch/blog/setting-up-solr-4-0-beta-with-tomcat-and-zookeeper
本文出自 “timemaster” 博客,请务必保留此出处http://timemaster.blog.51cto.com/30055/1074436
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: