linux下运行solr,在Linux上搭建solr环境

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

本文采用Linux操作系统在hadoop用户下安装,solr采用3.x中的最新版本3.6.2,tomcat采用6.0.37版本,安装包可以从本文下方链接下载。

这里有两种安装方式,一种方式为利用solr自带的jetty来启动solr,默认端口为8983。另外一种方式为将solr集成到tomcat中。其中第一种方式较为简单,推荐新手采用。将sorl的安装包解压到用户的根目录下,解压后文件夹为apache-solr-3.6.2。

进入到example目录下,执行java -jar start.jar命令,solr服务启动,端口为8983。

通过http://IP地址:8983/solr/来访问solr的web页面,进入admin页面后可以通过输入字符串来查找索引。查找索引默认显示的格式为xml格式,可以通过在url的后面加上参数wt=json来显示json格式的结果。

利用tomcat

安装tomcat

1. 将apache-tomcat-6.0.37.tar.gz解压到hadoop的跟目录下。

2. 修改hadoop用户的环境变量,执行vi ~/.bash_profile命令,添加如下:1

2

3export CATALINA_HOME=/home/hadoop/apache-tomcat-6.0.37

export CLASSPATH=.:$JAVA_HOME/lib:$CATALINA_HOME/lib

export PATH=$PATH:$CATALINA_HOME/bin

3. 执行source ~/.bash_profile使修改的环境变量生效。

4. 执行tomcat的bin目录下的startup.bat脚本来启动tomcat。

5. 通过netstat -anp | grep 8080命令查看tomcat是否启动。

安装solr

1. 将solr的dist/apache-solr-3.6.2.war文件复制到tomcat的webapps目录下,并将文件命名为solr.war。执行cp ~/apache-solr-3.6.2/dist/apache-solr-3.6.2.war ~/apache-tomcat-6.0.37/webapps/solr.war命令。WAR是一个完整的web应用程序,包括了Solr的jar文件和所有运行Solr所依赖的Jar文件,Jsp和很多的配置文件与资源文件。

2. 修改~/apache-tomcat-6.0.37/conf/server.xml文件相应行的内容如下:1

2

3

4

connectionTimeout="20000"

URIEncoding="UTF-8"

redirectPort="8443" />

增加URIEncoding="UTF-8"来支持中文。这是因为solr基于xml,json,javabin,php,python等多种格式传输请求和返回结果。

3.复制~/apache-solr-3.6.2/example/solr目录到/home/hadoop/solr位置。该位置为solr的应用环境目录。

4. 修改/home/hadoop/solr/conf/solrconfig.xml文件中的dataDir一行内容为:1${solr.data.dir:/home/hadoop/solr/data}

目的是为了指定存放索引数据的路径。

5. 在~/apache-tomcat-6.0.37/conf/Catalina/localhost目录下新建文件solr.xml。增加内容如下:1

2

3

其中docBase为tomcat的webapps下的solr.war完整路径。Environment的value属性的值为存放solr索引的文件夹,即第三步中复制的文件夹。

需要注意的是:Catalina目录在首次启动tomcat时创建,因此在此步骤前需要启动过tomcat。

6. 在tomcat的bin目录下通过startup.sh启动tomcat。

7. 通过http://IP地址:8080/solr/来访问solr的web页面。

相关命令

放入数据到solr中

在apache-solr-3.6.2/example/exampledocs目录下,执行java -jar post.jar 要存放的文件名。这里自己新建一个文件test.xml放入到solr中,文件内容如下:1

2

3

4

5

6

company

kaitone

执行java -jar post.jar test.xml将数据放入solr中。

删除数据

新建文本文件test_delete.xml,内容如下1

2

3

company

执行java -jar post.jar test_delete.xml将数据从solr中删除。

另外还可以通过命令行的方式来删除,命令为java -Ddate=args -jar post.jar 'company'。

在Eclipse中搭建环境操作Solr api

1. 新建一个java工程

2. 在工程中引入如下包:commons-httpclient-3.1.jar

commons-codec-1.6.jar

apache-solr-solrj-3.6.2.jar

slf4j-api-1.6.1.jar

slf4j-log4j12-1.6.1.jar

commons-logging-1.1.3.jar

log4j-1.2.12.jar

httpclient-4.2.5.jar

httpcore-4.2.4.jar

httpmime-4.2.5.jar

其中commons-httpclient-3.1.jar、commons-codec-1.6.jar、apache-solr-solrj-3.6.2.jar、slf4j-api-1.6.1.jar可以从solr的目录apache-solr-3.6.2中的dist目录下找到。

slf4j-log4j12-1.6.1.jar可以从slf4j的压缩包中slf4j-1.6.1.tar.gz找到。

commons-logging-1.1.3.jar可以从slf4j的压缩包中commons-logging-1.1.3-bin.zip找到。

log4j-1.2.12.jar可以从log4j的压缩包中logging-log4j-1.2.12.tar.gz找到。

httpclient-4.2.5.jar、httpcore-4.2.4.jar、httpmime-4.2.5.jar在httpcomponents-client-4.2.5-bin.tar.gz文件中。

具体的API编程可以参考Solr开发文档。

在linux上编译并执行程序

1. 将工程中用到的jar包复制到Linux机器上,这里复制到/home/hadoop/test_solr/lib目录下。

2. 将测试程序的源码放到Linux机器上,这里复制到/home/hadoop/test_solr目录下。其中源码包括三个文件:SolrTest.java、SolrClient.java、Index.java。该三个文件将会包含在下面相关下载中的Eclipse工程中。

3. 在/home/hadoop/test_solr目录下执行1javac -cp lib/apache-solr-solrj-3.6.2.jar:lib/commons-httpclient-3.1.jar:lib/log4j-1.2.12.jar:lib/commons-codec-1.6.jar:lib/commons-logging-1.1.3.jar:lib/slf4j-api-1.6.1.jar:lib/httpclient-4.2.5.jar:lib/httpcore-4.2.4.jar:lib/httpmime-4.2.5.jar:. SolrTest.java

其中-cp等同于-classpath参数,指定编译SolrTest.java文件需要的ClassPath路径,不要忘记路径后面的.表示当前路径,否则找不到当前目录下的其他java文件。

命令执行后会在/home/hadoop/test_solr目录下生成Index.class、SolrClient.class、SolrTest.class三个class文件。

4. 在/home/hadoop/test_solr目录下执行1java -cp lib/apache-solr-solrj-3.6.2.jar:lib/commons-httpclient-3.1.jar:lib/log4j-1.2.12.jar:lib/commons-codec-1.6.jar:lib/commons-logging-1.1.3.jar:lib/slf4j-api-1.6.1.jar:lib/httpclient-4.2.5.jar:lib/httpcore-4.2.4.jar:lib/:httpmime-4.2.5.jar:. SolrTest

来运行程序。

在Linux上打包并执行

1. 在上面步骤基础上,为了方便执行,可以将class文件打成jar包来执行,这样在使用java命令执行的时候就不用指定classpath路径了,只需要在jar包的MANIFEST.MF文件中指定classpath。

2. 在/home/hadoop/test_solr下新建一个文件,文件名可以随便,这里取名为MANIFEST.MF,与生成的jar包中的文件名一致,文件内容为1

2

3

4

5

6

7Manifest-Version: 1.0

Created-By: 1.6.0_10 (Sun Microsystems Inc.)

Main-Class: SolrTest

Class-Path: /home/hadoop/test_solr/lib/apache-solr-solrj-3.6.2.jar /home/hadoop/test_solr/lib/commons-httpclient-3.1.jar /home/hadoop/test_solr/lib/log4j-1.2.12.jar /home/hadoop/test_solr/lib/commons-codec-1.6.jar /home/hadoop/test_solr/lib/commons-logging-1.1.3.jar /home/hadoop/test_solr/lib/slf4j-api-1.6.1.jar

/home/hadoop/test_solr/lib/httpclient-4.2.5.jar

/home/hadoop/test_solr/lib/httpcore-4.2.4.jar

/home/hadoop/test_solr/lib/httpmime-4.2.5.jar

其中Main-Class指定main函数所在的类。

Class-Path指定用到的jar所在的路径。其中Class-Path的各个jar文件之间通过空格分隔而不是通过:分隔。

3. 将class文件打包成jar文件。执行1jar -cfm solrtest.jar MANIFEST.MF Index.class SolrClient.class SolrTest.class

会在此目录下生成solrtest.jar文件。jar命令会根据指定的MANIFEST.MF文件来产生jar包中的META-INF/MANIFEST.MF文件。两个文件内容并不完全一致,jar命令会根据格式对内容进行调整。

4. 运行jar文件。通过java -jar solrtest.jar来执行。

相关下载

参考文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值