不同于测试和研究,如果要把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_JAVA_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
版权声明:本文为原创文章,转载请注明转自Clement-Xu的csdn博客。