Solr 4.3.0 在 Ubuntu 12.04 + OpenJDK + Tomcat7 的安装 (转载)

tyl 2013-08-05

正在学习solr,看到这篇不错的文章,先拿过来已被后用。

转载链接地址:  http://kingsz1.iteye.com/blog/1876110

博客分类:
  •  
  • solr
 

这是一个安装记录。安装过程前和遇到问题时,浏览了众多的 solr 安装配置文章,感谢所有的作者分享。发现 Solr 4.3.0 在  Ubuntu 12.04 + OpenJDK 1.7 的安装,与网上已有的文章有一些出入。

Ubuntu 12.04 的安装 - 基本安装后,仅选择安装 openssh

安装 Openjdk
cisco@ubsolr:~$ sudo apt-get -y install openjdk-7-jdk

检查一下 JDK 安装路径:
cisco@ubsolr:~$ ls /usr/lib/jvm
java-1.7.0-openjdk-i386  java-7-openjdk-commonjava-7-openjdk-i386

cisco@ubsolr:~$ ls /usr/lib/jvm/java-7-openjdk-i386
cisco@ubsolr:~$ ls /usr/lib/jvm/java-7-openjdk-i386/bin

添加 JDK 环境变量:
cisco@ubsolr:~$ sudo nano /etc/profile

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH

重新启动一下系统,检查 JAVA 的配置:

cisco@ubsolr:~$ env
cisco@ubsolr:~$ java -version
cisco@ubsolr:~$ echo $JAVA_HOME

安装 Apache2 and Tomcat7

cisco@ubsolr:~$ sudo apt-get -y install apache2 apache2-prefork-dev libapr1-dev libaprutil1-dev
cisco@ubsolr:~$ sudo apt-get update
cisco@ubsolr:~$ sudo apt-get -y install tomcat7 tomcat7-admin

Tomcat7 安装后,相关目录和配置是在以下目录:

/usr/share/tomcat7
/var/lib/tomcat7/webapps
/etc/tomcat7/Catalina/localhost

从 http://tomcat.apache.org/tomcat-6.0-doc/appdev/sample/  下载 sample.war,把 sample.war 放到 /var/lib/tomcat7/webapps 并重启 Tomcat7:

cisco@ubsolr:~$ sudo /etc/init.d/tomcat7 restart

然后从浏览器输入 (我的主机IP地址是 192.168.56.10)

http://192.168.56.10:8080/sample

就可以看到 sample 的页面,这样就确定 JDK 和 Tomcat7 完全正常运作。

安装 Solr 4.3.0


cisco@ubsolr:~$ sudo /etc/init.d/tomcat7 stop

cisco@ubsolr:~$ sudo tar xzvf solr-4.3.0.tgz

cisco@ubsolr:~$ ls solr-4.3.0/dist

solr-4.3.0.war

把解压后的 solr-4.3.0.war 复制到 tomcat7/webapps 并改名为 solr.war

cisco@ubsolr:~$ sudo cp solr-4.3.0/dist/solr-4.3.0.war /var/lib/tomcat7/webapps/solr.war

新建一个目录 /var/solr 作为 Solr 的 home 目录 (solr.solr.home)

cisco@ubsolr:~$ sudo mkdir -p /var/solr

把解压的 example/solr 复制到 solr.solr.home 目录,这个就会是 collection1 的实例
cisco@ubsolr:~$ sudo cp –R solr-4.3.0/example/solr/* /var/solr 

cisco@ubsolr:~$ ls /var/solr

cisco@ubsolr:~$ sudo chown -R tomcat7 /var/solr

在 /etc/tomcat7/Catalina/localhost 建议一个 solr.xml,指明solr的路径

cisco@ubsolr:~$ sudo nano /etc/tomcat7/Catalina/localhost/solr.xml

<Context docBase="/var/lib/tomcat7/webapps/solr.war" debug="0" privileged="true" allowLinking="true" crossContext="true">
<Environment name="solr/home" type="java.lang.String" value="/var/solr" override="true">
</Environment>
</Context>

以上设置中,我的 solr.war (包括其后产生的 solr 目录) 是存放于 /var/lib/tomcat7/webapps

而 实例 collection1 则存放于 /var/solr

把实例 collection1 (和 core0, core1) 的路径 放到系统变量 (于文件 /etc/profile):


cisco@ubsolr:~$ sudo nano /etc/profile

export JAVA_OPTIONS="-Dsolr.solr.home=/var/solr  $JAVA_OPTIONS"

将解压的 solr 相关 lib 复制到 tomcat7 的 /lib 目录下:
cisco@ubsolr:~$ ls solr-4.3.0/example/lib/ext

jcl-over-slf4j-1.6.6.jar  log4j-1.2.16.jar     slf4j-log4j12-1.6.6.jar
jul-to-slf4j-1.6.6.jar  slf4j-api-1.6.6.jar

cisco@ubsolr:~$ ls /usr/share/tomcat7/lib

cisco@ubsolr:~$ sudo cp -R solr-4.3.0/example/lib/ext/* /usr/share/tomcat7/lib

cisco@ubsolr:~$ sudo cp solr-4.3.0/example/resources/log4j.properties /usr/share/tomcat7/lib

设定 solr 的 log 到指定的目录 /var/solr/logs :


cisco@ubsolr:~$ sudo mkdir -p /var/solr/logs
cisco@ubsolr:~$ sudo chown -R tomcat7 /var/solr/logs 
cisco@ubsolr:~$ sudo nano /usr/share/tomcat7/lib/log4j.properties
  
log4j.appender.file.File=/var/solr/logs/solr.log

建立 collection1 的 data 目录:
cisco@ubsolr:~$ sudo mkdir -p /var/solr/collection1/data
cisco@ubsolr:~$ sudo chown -R tomcat7 /var/solr/collection1/data

修改 solrconfig.xml,指定 data 路径:
cisco@ubsolr:~$ sudo nano /var/solr/collection1/conf/solrconfig.xml

<dataDir>${solr.data.dir:/var/solr/collection1/data}</dataDir>

在 /var/solr 下建一个目录 libs,存放各种外加的 lib:
cisco@ubsolr:~$ sudo mkdir -p /var/solr/libs
cisco@ubsolr:~$ sudo chown -R tomcat7 /var/solr/libs

cisco@ubsolr:~$ sudo cp solr-4.3.0/dist/*.jar /var/solr/libs
cisco@ubsolr:~$ sudo cp solr-4.3.0/contrib/extraction/lib/* /var/solr/libs

修改 sorlconfig.xml 指定各种外加 lib 的路径:
cisco@ubsolr:~$ sudo nano /var/solr/collection1/conf/solrconfig.xml

<!-- my added libs folder -->

<lib dir="/var/solr/libs" />

<lib dir="/var/solr/libs/" regex="solr-cell-\d.*\.jar" />

<lib dir="/var/solr/libs/" regex="solr-clustering-\d.*\.jar" />

<lib dir="/var/solr/libs/" regex="solr-langid-\d.*\.jar" />

<lib dir="/var/solr/libs/" regex="solr-velocity-\d.*\.jar" />  

在 solrconfig.xml 有指定 lib 目录的例句,用 <!--  --> 都屏蔽掉,否则 会有 目录找不到的提示

同时修改索引提交的记录数,我的理解是,小的数字会快点提交写入硬盘,要求内存会少一点:
<autocommit>
<maxDocs>10000</maxDocs>
</autocommit>

保存。重启 tomcat7:
cisco@ubsolr:~$ sudo /etc/init.d/tomcat7 start

从浏览器输入 (我的主机IP地址是 192.168.56.10)

http://192.168.56.10:8080/solr

就可以看到 solr 的页面了。

以上配置,其实就是修改了 collection1 下的 solrconfig.xml, 一般不会有问题。如果不能看到 solr 页面,有可能 solr 还没启动呢。我自己就遇到这样的问题。有问题时,先确定 tomcat7 正常运作 (以上 sample.war 就是用于检查 Java 和 tomcat7 正常运行)。然后查看 logs

cisco@ubsolr:~$ ls /var/lib/tomcat7/logs

catalina.2013-05-20.log  localhost_access_log.2013-05-20.txt

cisco@ubsolr:~$ vi /var/lib/tomcat7/logs/catalibna.2013-05-20.log

"/var/lib/tomcat7/logs/catalina.2013-05-20.log" [readonly] 646L, 53118CMay 20, 2013 11:26:50 PM org.apache.catalina.startup.HostConfig checkResources
INFO: Undeploying context [/solr]
May 20, 2013 11:40:10 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor /etc/tomcat7/Catalina/localhost/solr.xml
May 20, 2013 11:40:10 PM org.apache.tomcat.util.digester.Digester fatalError
SEVERE: Parse Fatal Error at line 3 column 3: The element type "Environmanet" must be terminated by the matchiing end-tag "</Environmanet>".

这里的记录显示 solr.xml 文件 的语法有问题啊,少了一个斜杠(/)。我为这个斜杠付出2天时间呢,惭愧。

如果solr 可以正常启动,最好备份一下 solrconfig.xml 。因为多数功能的安装,都要修改 solrconfig.xml,一旦修改了,突然出错,就比较麻烦。每改一次都备份一下,出错了,就把上一个好的复制回来,这样修改就少多了

安装 IKAnalyzer (IK Analyzer 2012FF_hf1.zip)

这个安装折腾了几天,网上多数的例子都不适用,只用一个可用的,详见

http://sbp810050504.blog.51cto.com/2799422/1179312

谢谢这位老大的分享,以下是我的安装记录。文件 "IK Analyzer 2012FF_hf1.zip" 从 http://code.google.com/p/ik-analyzer/downloads/list 下载,改名为 IKAnalyzer2012FF.zip


cisco@ubsolr:~$ sudo apt-get -y install unzip
cisco@ubsolr:~$ sudo unzip IKAnalyzer2012FF.zip -d IKA5

cisco@ubsolr:~$ sudo cp IKA5/IKAnalyzer2012FF_u1.jar /var/lib/tomcat7/webapps/solr/WEB-INF/lib

cisco@ubsolr:~$ sudo mkdir -p /var/lib/tomcat7/webapps/solr/WEB-INF/lib/classes

cisco@ubsolr:~$ sudo cp IKA5/IKAnalyzer.cfg.xml /var/lib/tomcat7/webapps/solr/WEB-INF/lib/classes
cisco@ubsolr:~$ sudo cp IKA5/stopword.dic /var/lib/tomcat7/webapps/solr/WEB-INF/lib/classes

修改 schema.xml
cisco@ubJ:~$ sudo nano /var/solr/collection1/conf/schema.xml

<!-- IKAnalyzer 2012FF u1 --> 
<fieldType name="text" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer">
</analyzer> 

</fieldType>

保存。重启 tomcat7

cisco@ubsolr:~$ sudo /etc/init.d/tomcat7 restart

schema.xml 是另一个重要的配置文件,每次修改后测试,如果可行、有效、不出错,就做一个备份。

相关推荐

lionelf / 0评论 2020-07-28