實現tomcat部署solr

某個項目中用到了全文搜索引擎apache solr。之前一直是在命令行用java –jar start.jar來啓動solr的。這樣的方式只能用在開發時。因爲一旦關閉終端,solr也就被關閉了。

在網上看到可以用tomcat來部署solr。遂實踐之。

1、安裝java

# uname –a #查看機器是多少位的。

我的機器是64位的,我下載安裝:jdk-6u6-linux-x64.bin

   # sh /home/apps/jdk-6u16-linux-i586-rpm.bin

查看提示信息,按照提示選擇。默認會安裝在/usr/java目錄下,我的安裝路徑是在/usr/local/jdk1.6.0_19。

   # mv 安裝文件夾 jdk #修改文件夾名爲jdk。

   # java -version
顯示當前JRE版本,如果不是1.6.0_16(默認會安裝較低版本1.4),

則有方法一:

刪除較低版本的jdk

# rpm -qa | grep java #查看系統安裝的jdk
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

# rpm –e java-1.4.2-gcj-compat-1.4.2.0-40jpp.115 –nodeps#刪除低版本的jdk。

方法二:

需要修改配置。

在vi /etc/profile文件中加入

export PATH=/usr/local/jdk1.6.0_19/bin:$PATH

將java的路徑放在$PATH之前,這樣就會優先使用我們新安裝的jdk。

2、安裝tomcat

http://tomcat.apache.org/download-60.cgi下載Tomcat 6的安裝包apache-tomcat-6.0.20.tar.gz,選擇Core:tar.gz (pgp, md5) 進行下載。

安裝tomcat是很簡單的,將tomcat解壓縮到想要安裝的目錄即可。

在SSH Client中執行:
  # tar zxf apache-tomcat-6.0.20.tar.gz
  # cp -r apache-tomcat-6.0.20 /usr/local/apache-tomcat-6.0.20

  #mv apache-tomcat-6.0.20 tomcat
  # cd /usr/local/tomcat/bin
  # ./startup.sh  #啓動Tomcat

現在來看看我的/etc/profile的配置

JAVA_HOME=/usr/local/jdk1.6.0_19
JRE_HOME=/usr/local/jdk1.6.0_19/jre
JAVA_BIN=/usr/local/jdk1.6.0_19/bin
TOMCAT_HOME=/usr/local/tomcat
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME TOMCAT_HOME  CLASSPATH JAVA_BIN JRE_HOME
export PATH=/usr/local/jdk1.6.0_19/bin:$PATH
export JAVA_OPTS="$JAVA_OPTS -Dsolr.solr.home=/opt/solr/example/solr"

3、安裝Solr


http://people.apache.org/builds/lucene/solr/nightly/下載solr的zip包後解壓縮,將dist目錄下的war文件改名爲solr.war直接複製到tomcat的webapps目錄即可。

我是直接將項目要用的example目錄拷貝下來。

# mkdir –p /opt/solr/example #創建要存放solr的目錄

# cp –r example/solr /opt/solr/example #將example下的solr目錄(包含目錄conf,data等)複製到之前創建的目錄中。

# cp example/webapps/solr.war /usr/local/tomcat/webapps #將example中的webapps裏的solr.war放在/usr/local/tomcat/webapps中

修改/opt/solr/example/solr/conf/solrconfig.xml文件中的配置data路徑的語句,設置solr的data路徑爲絕對路徑

<dataDir>${solr.data.dir:/opt/solr/example/solr/data}</dataDir> #必須設置爲絕對路徑,否則tomcat找不到。


export JAVA_OPTS="$JAVA_OPTS -Dsolr.solr.home=/opt/solr/example/solr"(這一句配置可以寫在profile中)

注意一定要設置solr的主位置。

建立/tomcat安裝目錄/conf/Catalina/localhost/solr.xml文件。

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="/usr/local/tomcat/webapps/solr.war" debug="0" crossContext="true" >
   <Environment name="solr/home" type="java.lang.String" value="/opt/solr/example/solr" override="true" />
</Context>

 

</Context>

變量1:Context docBase=solr.war的目錄,必須是solr.war的絕對路徑。如我是放在tomcat的webapps裏,所以其絕對路徑爲"/usr/local/tomcat/webapps/solr.war" 。

變量2:Environment name="solr/home"必須這麼寫,可能solr默認爲solr的home目錄(記住必須這麼寫)。

變量3:Environment  value="/opt/solr/example/solr" 值,是solr目錄,就是包括bin,conf等目錄,一定要有.

觀察這個指定的solr主位置,裏面存在兩個文件夾:conf和data.

其中conf裏存放了對solr而言最爲重要的兩個配置文件schema.xml和solrconfig.xml。data則用於存放索引文件。

schema.xml主要包括types、fields和其他的一些缺省設置。

solrconfig.xml用來配置Solr的一些系統屬性,例如與索引和查詢處理有關的一些常見的配置選項,以及緩存、擴展等等。

tomcat默認是監聽8080端口。若想讓其監聽solr默認的端口8943,可以這樣設置

修改/usr/local/tomcat/conf目錄中的server.xml文件。

查看8080,將其修改爲8943.如下所示:

<Connector port="8983" maxHttpHeaderSize="8192"
              maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
              enableLookups="false" redirectPort="8443" acceptCount="100"
              connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>

#注意最好設置爲URIEncoding="UTF-8"否則可能檢索中文會出現問題。

至此,solr正確的部署在裏tomcat中。可以瀏覽器輸入http://192.168.10.109:8983/solr/可以看到如下畫面

4、配置tomcat自動啓動

這樣就不用每次手動去啓動solr了。

 

Tomcat自動啓動腳本(網上搜索得來。經測試,可用)。

#!/bin/bash

#

# kenny [email protected]

# /etc/rc.d/init.d/tomcat

# init script for tomcat precesses

#

# processname: tomcat

# description: tomcat is a j2se server

# chkconfig: 2345 86 16

# description: Start up the Tomcat servlet engine.

if [ -f /etc/init.d/functions ]; then

. /etc/init.d/functions

elif [ -f /etc/rc.d/init.d/functions ]; then

. /etc/rc.d/init.d/functions

else

echo -e "\atomcat: unable to locate functions lib. Cannot continue."

exit -1

fi

RETVAL=$?

CATALINA_HOME="/usr/local/tomcat" #tomcat安裝目錄

case "$1" in

start)

if [ -f $CATALINA_HOME/bin/startup.sh ];

then

echo $"Starting Tomcat"

$CATALINA_HOME/bin/startup.sh

fi

;;

stop)

if [ -f $CATALINA_HOME/bin/shutdown.sh ];

then

echo $"Stopping Tomcat"

$CATALINA_HOME/bin/shutdown.sh

fi

;;

*)

echo $"Usage: $0 {start|stop}"

exit 1

;;

esac

exit $RETVAL

將此腳本保存爲tomcat。

執行#chmod 755 tomcat使之可執行

2、將tomcat文件拷貝到/etc/init.d/下,並運行:chkconfig --add tomcat #將其加到服務中

3、在tomcat/bin/catalina.sh文件中加入以下語句:
export JAVA_HOME=/YOURPATH/tomcat/jdk
export CATALINA_HOME=/YOURPATH/tomcat
export CATALINA_BASE=/YOURPATH/tomcat
export CATALINA_TMPDIR=/YOURPATH/tomcat/temp

啓動tomcat: service tomcat start
停止tomcat: service tomcat stop

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章