环境:
CentOS 6.5, JDK 1.7(必需1.7或以上), Solr5.0.0
参考页面:https://cwiki.apache.org/confluence/display/solr/Taking+Solr+to+Production
一、单机模式solr服务实例的安装
1. 下载solr-5.0.0.tgz包
2. 从压缩包中抽出安装脚本
tar xzf solr-5.0.0.tgz solr-5.0.0/bin/install_solr_service.sh --strip-components=2
3. 运行安装脚本
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
#注意:以上两条命令效果一样:
#-i /opt 指定solr的安装目录,默认为/opt(安装时会生成指向安装目录的符号连接 /opt/solr -> /opt/solr-5.0.0)
#-d /var/solr 指定写文件的目录,包括索引、日志、初环境变量设置等,默认为/var/solr
#-u solr 指定solr文件和运行进程的所属用户, 默认为solr(安装脚本自动创建了solr账号)
#-s solr solr服务的名称, 默认为solr
#-p 8983 solr服务的监听端口,默认为8983
4. 安装完成,以下是solr service的管理命令
sudo service solr start/stop/restart/status
或
/etc/init.d/solr start/stop/restart/status
#注意:solr服务默认安装是开机启动的
二、在单台机器上安装多个solr server实例
sudo bash ./install_solr_service.sh solr-5.0.0.tgz -s solr2 -p 8984
sudo service solr2 start/stop/restart/status
或
/etc/init.d/solr2 start/stop/restart/status
三、服务重要配置文件
1. /var/solr/solr.in.sh
SOLR_PID_DIR=/var/solr #solr服务运行进程的PID存储目录
SOLR_HOME=/var/solr/data #solr.home的目录, 即包含solr.xml的目录
日志设置
LOG4J_PROPS=/var/solr/log4j.properties #log4j的配置文件
SOLR_LOGS_DIR=/var/solr/logs #solr服务的日志目录
内存设置
SOLR_JAVA_MEM="-Xms10g -Xmx10g" #solr服务JVN内存设置
solrCloud模式运行
SOLR_MODE=solrcloud #solr服务以cloud模式运行
ZK_HOST=zk1,zk2,zk3或ZK_HOST=zk1,zk2,zk3/solr #指定zookeeper ensemble
SOLR_HOST=solr1.example.com #指定solr hostname
开启远程JMX 访问
ENABLE_REMOTE_JMX_OPTS=true #开启JMX
RMI_PORT=18983 #开启JMX时,需要设置RMI_PORT
2. /etc/init.d/solr
SOLR_INSTALL_DIR=/opt/solr #solr服务安装目录
SOLR_ENV=/var/solr/solr.in.sh #solr服务实例的环境变量设置脚本
RUNAS=solr #solr服务启动用户
3. bin/oom_solr.sh
当JVM抛出OutOfMemoryError时,回调此脚本,通过' kill -9'杀掉内存溢出的solr进程
4. 重写solrconfig.xml中的属性设置
一般${solr.PROPERTY:DEFAULT_VALUE}的属性, 在启动solr服务时都可用-Dproperty=value重写
在生产环境上,建议通过/var/solr/solr.in.sh里的'SOLR_OPTS'重写,
eg.
SOLR_OPTS="$SOLR_OPTS -Dsolr.autoSoftCommit.maxTime=10000"