学习目标

掌握在生产环境中安装配置solr
掌握solr的安全配置
掌握solr的集合管理

应用于生产

搜索引擎(Solr配置管理详解)-LMLPHP

在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服务实例的。 可看到使用了如下三个变量:

搜索引擎(Solr配置管理详解)-LMLPHP

2.环境参数配置文件(官方叫法:include file)。它将覆盖 bin/solr启停控制脚本中的配置参数。我们通过该文件来配置修改solr服务实例的运行配置。

请查看 /etc/default/solr.in.sh  ,看我们可以在该文件中进行哪些配置。

在 /etc/default/solr.in.sh  中可看到它配置了如下参数:

搜索引擎(Solr配置管理详解)-LMLPHP

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

03-07 22:34