1 把solr8.3安装到tomcat8.5中,此处省略,如有需要请参考https://blog.csdn.net/qq_28497823/article/details/103297774
2 修改每台机器的solrhome下的solr.xml,把其中的ip及端口号配置好
3 查看Tomcat下solr的web.xml文件中的solrhome是否是正确的
4 把solrhome/configsets/sample_techproducts_configs/conf目录上传到zookeeper
在/root/solr-8.3.0/server/scripts/cloud-scripts目录中有zkcli.sh脚本,使用些脚本上传
./zkcli.sh -zkhost 192.168.119.10:2181,192.168.119.11:2181,192.168.119.12:2181 -cmd upconfig -confdir /usr/local/solrhome/configsets/sample_techproducts_configs/conf -confname myconf
-zkhost:zookeeper集群的ip和端口号列表
-cmd:要执行的是上传配置文件操作
-confdir:要上传的配置文件目录
-confname:上传到zookeeper集群的配置名
上传成功后使用zkCli.sh查看zookeeper的目录,如果有myconf目录了者代表上传成功
5 修改tomcat/bin目录下的catalina.sh 文件,关联solr和zookeeper
注释掉291行,然后加上:
JAVA_OPTS="$JAVA_OPTS -DzkHost=192.168.119.10:2181,192.168.119.11:2181,192.168.119.12:2181"
不同版本的tomcat可能行数不一样,注意修改正确的位置
$JAVA_OPTS一定不能少!!!网上很多坑都是因为不加,导致所配的tomcat的JVM启动参数部分失效!
6 都修改好后,启动每个tomcat实例,注意启动zookeeper集群,正常情况下会有cloud选项出来
7 增加Collection
8 给每个solr应用配置ik-analyzer-8.3.0
和单机版本配置一样,只不过修改managed-schema文件后要上传到zookeeper,修改配置请参考https://blog.csdn.net/qq_28497823/article/details/103297774,操作其中的2、3、4、5,10.1步骤就可以了
9 重新上传修改过后的集群配置文件
命令执行目录:
server/scripts/cloud-scripts/
1、下载配置文件
./zkcli.sh -zkhost 172.16.xxx.xx:2181,172.16.xxx.xx:2181,172.16.xxx.xx:2181 -cmd getfile /configs/myconf/managed-schema /home/application/managed-schema
./zkcli.sh -zkhost 172.16.xxx.xx:2181,172.16.xxx.xx:2181,172.16.xxx.xx:2181 -cmd getfile /configs/myconf/solrconfig.xml /home/application/solrconfig.xml
2、修改配置文件
vim xxx
3、上传配置文件
./zkcli.sh -zkhost 172.16.xxx.xx:2181,172.16.xxx.xx:2181,172.16.xxx.xx:2181 -cmd putfile /configs/myconf/managed-schema /home/application/managed-schema
./zkcli.sh -zkhost 172.16.xxx.xx:2181,172.16.xxx.xx:2181,172.16.xxx.xx:2181 -cmd putfile /configs/myconf/solrconfig.xml /home/application/solrconfig.xml
4、重新加载配置文件
http://172.16.xxx.xxx:8983/solr/admin/collections?action=RELOAD&name=CollectionName
10 重启所有tomcat后就有text_ik分词器的下拉选项了,完工,截图留恋 :)
11 可能出现的异常(没发现影响功能,但我有代码洁癖,so...... ):
Errors:
Could not execute ruok towards ZK host 192.168.119.10:2181. Add this line to the 'zoo.cfg' configuration file on each zookeeper node: '4lw.commands.whitelist=mntr,conf,ruok'. See also chapter 'Setting Up an External ZooKeeper Ensemble' in the Solr Reference Guide.
Could not execute ruok towards ZK host 192.168.119.11:2181. Add this line to the 'zoo.cfg' configuration file on each zookeeper node: '4lw.commands.whitelist=mntr,conf,ruok'. See also chapter 'Setting Up an External ZooKeeper Ensemble' in the Solr Reference Guide.
Could not execute ruok towards ZK host 192.168.119.12:2181. Add this line to the 'zoo.cfg' configuration file on each zookeeper node: '4lw.commands.whitelist=mntr,conf,ruok'. See also chapter 'Setting Up an External ZooKeeper Ensemble' in the Solr Reference Guide.
解决方案:
设置每个zookeeper的zoo.cnf文件
vim /usr/local/apache-zookeeper/conf/zoo.cfg
最后一行加入:
4lw.commands.whitelist=mntr,conf,ruok
重启zookeeper
zkServer.sh restart