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

Solr 在Linux系统中的产品化安装

2015-08-27 15:06 387 查看
不同于测试和研究,如果要把Solr产品化部署的话,需要把它安装成一个服务。在Solr压缩包中的bin目录下有一个脚本install_solr_service.sh,它负责solr的安装、并且注册为自启动的service。

目录规划:
动态文件:建议把动态文件(log、索引文件)单独放到另外的目录中(比如/var 里面),跟Solr安装目录不同,以方便管理和以后的升级。缺省是/var/solr,如果需要更改,安装时可以用“-d”参数指定另外一个目录。
安装路径:使用脚本安装,缺省的安装目录是/opt 里面。如果需要换另外一个目录,可以使用“-i”参数,比如“-i /opt/app”。另外,安装脚本会自动创建一个软连接:/opt/solr -> /opt/solr-5.2.1。使用软连接可以方便以后升级后的访问。

Linux用户:
缺省地,安装脚本会自动创建一个用户名为“solr”的用户。也可以使用“-u”参数自己指定一个用户名。安装脚本会把安装相关目录(/opt/solr和var/solr)的owner设为这个用户。

下载压缩包:

官网:http://lucene.apache.org/solr/

wget下载:
# wget http://mirror.bit.edu.cn/apache/lucene/solr/5.2.1/solr-5.2.1.tgz

解压安装脚本:
# tar xzf solr-5.2.1.tgz solr-5.2.1/bin/install_solr_service.sh --strip-components=2

运行安装脚本(需要使用root账号):
缺省安装:
# ./install_solr_service.sh solr-5.2.1.tgz

自定义(带参数)安装:
# ./install_solr_service.sh solr-5.2.1.tgz -i /opt -d /var/solr -u solr -s solr -p 8983
安装参数:

-d 动态文件目录,缺省为“/var/solr”
-i solr加压安装目录,缺省为“/opt”
-p 工作/监听端口,缺省为“8983”
-s 安装成Linus服务的名字,缺省为“solr”
-u 运行solr的用户名,如果用户不存在,会自动创建,缺省为“solr”

查看所有的安装参数:
# ./install_solr_service.sh -help

假设需要安装到“/opt/app”目录下:
# ./install_solr_service.sh solr-5.2.1.tgz -i /opt/app

结果如下:
id: solr: no such user
Creating new user: solr
Extracting solr-5.2.1.tgz to /opt/app
Creating /etc/init.d/solr script ...

Started Solr server on port 8983 (pid=18066). Happy searching!

Found 1 Solr nodes:

Solr process 18066 running on port 8983
{
"solr_home":"/var/solr/data/",
"version":"5.2.1 1684708 - shalin - 2015-06-10 23:20:13",
"startTime":"2015-08-27T04:02:34.071Z",
"uptime":"0 days, 0 hours, 0 minutes, 5 seconds",
"memory":"38.5 MB (%7.8) of 490.7 MB"}

Service solr installed.

查看生成的目录:
# ls -l /opt/app
可以看到两个新东东:
solr -> /opt/app/solr-5.2.1
solr-5.2.1

# ls -l /var
可以看到一个新东东
solr

查看solr服务状态:
# service solr status

Found 1 Solr nodes:

Solr process 18066 running on port 8983
{
"solr_home":"/var/solr/data/",
"version":"5.2.1 1684708 - shalin - 2015-06-10 23:20:13",
"startTime":"2015-08-27T04:02:34.071Z",
"uptime":"0 days, 0 hours, 2 minutes, 53 seconds",
"memory":"46 MB (%9.4) of 490.7 MB"}

说明已经安装成功并启动了!

相关概念和配置:

Solr Home:Solr找到solr.xml、管理索引文件的路径,该目录下至少包含一个solr.xml文件。缺省为/var/solr/data
Include File:统一定义环境变量的文件,缺省位置:/var/solr/solr.in.sh。至少包括下面前两个配置:

SOLR_PID_DIR=/var/solr
SOLR_HOME=/var/solr/data
SOLR_J***A_MEM="-Xms512m -Xmx512m" (配置JVM的MemSize)
ZK_HOST=zk1,zk2,zk3(SolrCloud的情况下,配置ZooKeeper的信息。如果配置了这个,就表示启动模式是SolrCloud了。)

Log配置:solr使用Log4J,配置文件位置:/var/solr/log4j.properties。log文件缺省位置:/var/solr/logs/solr.log
init.d脚本:/etc/init.d目录下存放的是跟服务相关的脚本。其中的solr文件定义了solr服务(start|stop|restart|status),还定义一些环境变量和用户(RUNAS变量):

SOLR_INSTALL_DIR=/opt/solr
SOLR_ENV=/var/solr/solr.in.sh
RUNAS=solr
Out-Of-Memory处理配置:solr缺省使用bin/oom_solr.sh脚本来处理JVM内存不足的情况,缺省是杀死进程。如果在SolrCloud模式下,进程被杀死的时候zookeeper会知道并作出相应的处理。

当需要在一个服务器上启动两个solr服务/node的时候:
再一次执行安装脚本,并指定一个不同的服务名称和端口号,比如:
# ./install_solr_service.sh solr-5.2.1.tgz -s solr2 -p 8984
查看服务状态:
# service solr2 status
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: