TOMCATSOLR3.5迁移为4.0部署文档

基于官网Example A: Simple two shard cluster

一、工具准备

1.13. 5版本SOLR/HOME文件

1.2 4.0版本SOLRapache-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.htmladmin-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