将Solr5部署到生产环境

来源:互联网 发布:java开发专业技能 编辑:程序博客网 时间:2024/05/16 08:03

== 将Solr部署到生产环境

-- Solr服务安装脚本

Solr包含一个安装脚本(bin/install_solr_service.sh)能帮助你在linux下安装Solr服务。

在运行安装脚本前,你需要决定设置一些参数。尤其是在哪安装Solr和Solr文件及进程属于哪个系统用户。

- 安排你的目录结构
我们建议将Solr产生的文件,如日志和索引文件,与Solr发布包含的文件分开。这样便于Solr升级和便于管理。

Solr安装目录:
默认,安装脚本会解压安装包到 /opt 下。你可以使用-i选项修改。
/opt/solr-5.0.0
/opt/solr -> /opt/solr-5.0.0  # 升级只需要修改此链接

分离Solr的可写文件目录:
默认使用/var/solr, 你可以使用-d选项修改。

- 创建Solr用户
基于安全原因不推荐以root用户运行Solr. 因此你应该决定solr文件和进程属于哪个系统用户。
默认情况下,安装脚本将创建solr用户,但你可以用-u选项来覆盖。

- 运行Solr安装脚本
从安装包解压install_solr_service.sh到当前目录(RedHat确保安装了lsof, sudo yum install lsof):
$ tar xzf solr-5.0.0.tgz solr-5.0.0/bin/install_solr_service.sh --strip-components=2

必须以root用户运行安装脚本:
$ sudo bash ./install_solr_service.sh solr-5.0.0.tgz
等价于:
$ sudo bash ./install_solr_service.sh solr-5.0.0.tgz -i /opt -d /var/solr -u solr -s solr -p 8983

查看可用的选项:
$ sudo bash ./install_solr_service.sh -help

运行完成后,solr安装为一个服务并在后台运行:
$ sudo service solr status

Solr Home Directory:
Solr用来管理Core的索引文件的目录,默认使用/var/solr/data. Solr启动脚本(bin/solr)通过-Dsolr.solr.home来指定路径。

环境变量覆盖引用文件:
Solr服务的安装脚本创建了一个环境相关的引用文件,用来覆盖bin/solr脚本的默认参数值。(/etc/default/solr.in.sh)
这样做的主要优点是,它提供了一个唯一的位置用于定义所有覆盖的环境变量。
----
SOLR_PID_DIR="/var/solr"
SOLR_HOME="/var/solr/data"
LOG4J_PROPS="/var/solr/log4j.properties"
SOLR_LOGS_DIR="/var/solr/logs"
SOLR_PORT="8983"
----

日志设置:
Solr使用Log4J来记录日志,通过/var/solr/log4j.properties可以自定义配置.

init.d脚本:
# service solr start # stop, restart, status等基本功能

状态检查:
# service solr status
Found 1 Solr nodes: 
Solr process 23974 running on port 8983
{
  "solr_home":"/var/solr/data",
  "version":"5.5.0 2a228b3920a07f930f7afb6a42d0d20e184a943c - mike - 2016-02-16 15:22:52",
  "startTime":"2016-04-27T08:09:37.759Z",
  "uptime":"0 days, 1 hours, 4 minutes, 20 seconds",
  "memory":"65.7 MB (%13.4) of 490.7 MB"}

-- 生产配置调优

- 内存和GC
bin/solr默认设置最大Java Heap Size为512M, 这对初学来说没什么问题。
在生产环境中,基于你的search应用可能需要增大这个设置;在10g到20g之间的值也不是不常见的。
可以在环境定义引用文件中设置:
SOLR_JAVA_MEM="-Xms10g -Xmx10g"

Java GC设置,默认设置在不同负载下表现良好,你可以修改:
GC_TUNE

Out-Of-Memory宕机回调:

bin/solr bin/oom_solr.sh   # kill -9 , 在SolrCloud模式下ZooKeeker将立即知道此节点出现了一个不可恢复的错误

- SolrCloud
TODO:

- Solr 主机名
SOLR_HOST=solr1.example.com

- 覆盖solrconfig.xml中的系统属性设置(${solr.PROPERTY:DEFAULT_VALUE)
----
<autoSoftCommit>
<maxTime>${solr.autoSoftCommit.maxTime:-1}</maxTime>
</autoSoftCommit>
----
$ bin/solr start -Dsolr.autoSoftCommit.maxTime=10000  #覆盖

生产环境下我们建议在环境定义引用文件中设置:
SOLR_OPTS="$SOLR_OPTS -Dsolr.autoSoftCommit.maxTime=10000"

- 允许远程JMX访问
如想Attch一个Java Profiling工具, 如JConsole or VisualVM。
ENABLE_REMOTE_JMX_OPTS=true
RMI_PORT=18983

-- 在一个主机运行多个Solr节点

$ sudo bash ./install_solr_service.sh solr-5.0.0.tgz -s solr2 -p 8984
$ sudo service solr2 restart

$ sudo service solr2 status


0 0
原创粉丝点击