1.下载solr-6.4.1.tgz到任意目录
2.执行tar xzf solr-X.Y.Z.tgz solr-X.Y.Z/bin/install_solr_service.sh --strip-components=2解压install_solr_service.sh安装脚本到当前目录
3.可以运行sh install_solr_service.sh solr-6.4.1.tgz -help 查看帮助,一些常用的选项:
使用-i 指定安装路径(默认/opt/solr-XXXX,通过软连接/opt/solr指向这个位置)
使用-d 指定变量路径(默认/var/solr,运行时只修改/var/solr中的东西,/opt/solr中的东西不变)
使用-u 指定solr启动用户,运行solr不建议用root用户,因此solr默认会使用名为 solr 的用户(没有则创建),可以用-u 自定义用户,这个用户会是/opt/solr和/var/solr目录的owner,也是启动的solr服务进程的owner
示例指令:
创建一个名为solr-8001的实例,使用8001端口,
sh install_solr_service.sh solr-6.4.1.tgz -p 8001 -s solr-8001 -u solr -n
4.执行了上面的命令之后,solr会生成下面的目录结构(假设生成一个名为solr-8001的实例):
/opt/solr-6.4.1 //solr原始安装文件,多实例共用一个,运行期间不会修改
/opt/solr-8001 -> /opt/solr-6.4.1 //每个实例对应一个,指向原始安装文件的软连接,升级用
/var/solr-8001 //每个实例对应一个,存放运行时文件
--data
--log4j.properties
--logs
/etc/default/solr-8001.in.sh //每个实例对应一个,存放配置文件
/etc/init.d/solr-8001 //每个实例对应一个,solr服务文件,把solr作为Linux的服务,可以将solr作为服务来管理,如service solr-8001 start (solr-xxx为示例名),启动服务时默认使用solr.in.sh中配置的RUNAS作为进程的owner,如果没设置就作为root启动(不推荐),service 除了start 还支持stop、restart、status命令。默认将solr服务设为自动启动,因此重启服务器后不需要启动solr。
5.后续配置
生成示例后需要手动修改/etc/default/solr-8001.in.sh来做一些设置,主要有下面设置:
- 内存大小:建议不大于32G,如果到达32G,则建议分单机多实例。SOLR_JAVA_MEM="-Xms31744m -Xmx31744m"
- GC配置:solr有预配置的gc设置,起手用默认的gc配置,发现问题再手动修改。
- ZK配置:如果使用外部zk,只需要在solr.in.sh里配置“ZK_HOST=zk1:2181,zk2:2181,zk3:2181/solr”,/solr考虑到solr可能和其他应用共享zk,因此做znode隔离,通过配置/solr将solr作为znode根目录。ZK_HOST="zk1:2181,zk2:2181,zk3:2181/solr"