学习目标
掌握在生产环境中安装配置solr
掌握solr的安全配置
掌握solr的集合管理
应用于生产
在linux系统上安装solrCloud
1.依赖:
JRE solr7.3 需要 java1.8
独立的zookeeper服务 ,zookeeper安装请参考:
http://zookeeper.apache.org/doc/current/zookeeperStarted.html
2.上传solr安装包
3.从安装包中解出安装脚本
tar xzf solr-7.3.0.tgz solr-7.3.0/bin/install_solr_service.sh --strip-components=2
安装脚本可用于:CentOS, Debian, Red Hat, SUSE and Ubuntu Linux distributions
4.安装脚本参数说明:
./install_solr_service.sh -help
-i 指定软件安装目录。默认 /opt
-d 指定数据目录(solr主目录):内核存储目录 。默认 /var/solr
-u 指定要创建的拥有solr的用户名,出于安全考虑,不应以root来运行。默认 solr
-s 指定系统服务名。默认 solr
-p 指定端口。默认 8983
5.目录规划
6.以root身份运行安装脚本进行安装
./install_solr_service.sh solr-7.3.0.tgz
等同:
./install_solr_service.sh solr-7.3.0.tgz -i /opt -d /var/solr -u solr -s solr -p 8983
配置solr服务实例
1.认识solr服务的配置文件
问:如何启动一个solr服务实例?
1,系统服务脚本: /etc/init.d/solr 请查看该脚本内容,看系统启动时是如何启动solr服务实例的。 可看到使用了如下三个变量:
2.环境参数配置文件(官方叫法:include file)。它将覆盖 bin/solr启停控制脚本中的配置参数。我们通过该文件来配置修改solr服务实例的运行配置。
请查看 /etc/default/solr.in.sh ,看我们可以在该文件中进行哪些配置。
在 /etc/default/solr.in.sh 中可看到它配置了如下参数:
2.在/etc/default/solr.in.sh中配置如下参数
1.调整solr实例的内存,默认solr使用512M的堆内存,生产环境下肯定需要调大。
SOLR_JAVA_MEM="-Xms10g -Xmx10g"
2.配置ZK_HOST,让服务实例以solrCloud模式运行
ZK_HOST=zk1,zk2:2182,zk3:2188
3.设置chroot。Solr默认使用zookeeper的/为其根目录,在多应用共用zookeeper的情况下,为避免冲突,应该在单独的子节点(如/solr)下来存储solr的配置信息。这个节点需事先创建好,然后配置如下:
ZK_HOST=zk1,zk2:2182,zk3:2188/solr
bin/solr zk mkroot /solr -z <ZK_node>:<ZK_PORT> 创建znode的命令
4.设置SOLR服务的主机名,在solrCloud模式下强烈建议配置。不设置则使用的是ip。
SOLR_HOST=solr1.example.com
5.为solrconfig.xml中用到的动态参数提供值
<autoSoftCommit>
<maxTime>${solr.autoSoftCommit.maxTime:-1}</maxTime>
</autoSoftCommit>
启动时给入参数值
bin/solr start -Dsolr.autoSoftCommit.maxTime=10000
在solr.in.sh中配置参数值
SOLR_OPTS="$SOLR_OPTS -Dsolr.autoSoftCommit.maxTime=10000"
在一台机器上运行多个solr服务
生产环境下,不要在一台机器上运行多个solr服务。如果确要在一台机器上运行多个solr服务实例,可以启动脚本加 –s 选项指定不同的solr主目录。还可以简单直接地安装多个solr系统服务(不同的服务名、端口):
./install_solr_service.sh solr-7.3.0.tgz -s solr2 -p 8984
请看solr2装在什么位置了。请查看目录: /etc/init.d /etc/default