背景
操作系统为RedHat6.5
192.168.101.168 , 192.168.101.169 , 192.168.101.170三台机器
1. 下载zookeeper-3.4.13.tar 下载地址:https://www.apache.org/dyn/closer.cgi/zookeeper/
下载solr-7.5.0.tar 下载地址:http://www.apache.org/dyn/closer.lua/lucene/solr/7.5.0
下载ik-analyzer-7.5.0.jar 下载地址:https://github.com/magese/ik-analyzer-solr7
2. 三台机器分别安装zk, tar -xvf zookeeper-3.4.13.tar;
3. 三台机器修改配置文件 mv /usr/solr7.5.0/zookeeper-3.4.13/conf/zoo_sample.cfg zoo.cfg; vim zoo.cfg,其它参数可在实际应用中进行调整
4. 在/usr/solr7.5.0/zookeeperdata 目录下根据上图主机名称【server.1=SVR948:5888:6888】写入相应的数字每台机器不同 svr948写入: echo "1" > myid svr062写入 : echo "2" > myid .....
5. 启动zookeeper, /usr/solr7.5.0/zookeeper-3.4.13/bin/zkServer.sh start;查看状态/usr/solr7.5.0/zookeeper-3.4.13/bin/zkServer.sh status
6. 解压solr , tar -xvf solr-7.5.0.tar
7. 编辑配置文件 /usr/solr7.5.0/solr-7.5.0/bin/solr.in.sh 写入如下信息 echo ZK_HOST=\"192.168.101.168:2181,192.168.101.169:2181,192.168.101.170:2181\" >> solr.in.sh (如需要修改端口也在此文件中进行修改)
8. 在某一台机器上新建目录/usr/solr7.5.0/solrcloud(可不建,只是为了方便后续管理),拷贝上传,更新ZK 所需要的jar 包到 solrcloud/lib目录下(/usr/solr7.5.0/solr-7.5.0/server/solr-webapp/webapp/WEB-INF/lib;以及IK分词包(如果需要的话);如果后续指令报错找不到类可在安装目录下寻找相应的jar包由于时间长忘记都需要哪些jar了)
9. 拷贝配置文件到/usr/solr7.5.0/solrcloud/deviceconf 下/usr/solr7.5.0/solr-7.5.0/server/solr/configsets/sample_techproducts_configs 并更名为conf
10. 创建分片./solr create_collection -c device -d /usr/solr7.5.0/solrcloud/deviceconf -n deviceconf -shards 3 -replicationFactor 3
11. 将solr配置文件交由ZK管理java -classpath .:/usr/solr7.5.0/solrcloud/libs/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost SVR948:2181,SVR062:2181,PC633:2181 -confdir /usr/solr7.5.0/solrcloud/deviceconf/conf -confname deviceconf
12. 将配置文件与连接关联 java -classpath .:/usr/solr7.5.0/solrcloud/libs/* org.apache.solr.cloud.ZkCLI -cmd linkconfig -collection device -confname deviceconf -zkhost SVR948:2181,SVR062:2181,PC633:2181
13. 修改完solr的配置文件(主要是solrconfig.xml)后更新上传,重复11即可;
14. 三台机器 启动solr ./solr start
注意
1. 配置hosts 文件 vim /etc/hosts 增加三台机器的配置
2. 频繁读写会使内存溢出(solr排序机制有关),可搜索DocValue属性(可降低内存占用,但个人认为会使效率降低)
3. zkCli.sh可查看配置文件是否上传成功 ls / 逐步进行查看
4. 一个zookeeper管理多个solr集群?(下面的方法没有经过测试)
登陆zk,zkCli.sh ; ls /; create solr1 null; create solr2 null;
ZH="192.168.101.168:2181/solr1,192.168.101.169:2181/solr1,192.168.101.170:2181/solr1"
ZH="192.168.101.168:2181/solr2,192.168.101.169:2181/solr2,192.168.101.170:2181/solr2"