第一步: 安装zookeeper集群
主机名 | IP地址 | 端口 | data路径 | 安装路径 |
---|---|---|---|---|
localhost | 172.16.29.129 | 2181 | /usr/local/zookeeper/zookeeper01/data/ | /usr/local/zookeeper/zookeeper01 |
localhost | 172.16.29.129 | 2182 | /usr/local/zookeeper/zookeeper02/data/ | /usr/local/zookeeper/zookeeper02 |
localhost | 172.16.29.129 | 2183 | /usr/local/zookeeper/zookeeper03/data/ | /usr/local/zookeeper/zookeeper03 |
第二步:安装solr集群
创建安装solr集群的目录:
[root@localhost local]# pwd
/usr/local
[root@localhost local]#
[root@localhost local]# mkdir solrcluster
服务器规划:
主机名 | IP地址 | 端口 | solrhome路径 | 安装路径 |
---|---|---|---|---|
localhost | 172.16.29.129 | 8081 | /usr/local/solrcluster/solrhome01 | /usr/local/solrcluster/tomcat01/webapps/solr |
localhost | 172.16.29.129 | 8082 | /usr/local/solrcluster/solrhome02 | /usr/local/solrcluster/tomcat02/webapps/solr |
localhost | 172.16.29.129 | 8083 | /usr/local/solrcluster/solrhome03 | /usr/local/solrcluster/tomcat03/webapps/solr |
localhost | 172.16.29.129 | 8084 | /usr/local/solrcluster/solrhome04 | /usr/local/solrcluster/tomcat04/webapps/solr |
将单机版solr复制4份到solrcluster文件夹下:
[root@localhost solr]# pwd
/usr/local/solr
[root@localhost solr]# ll
total 8
drwxr-xr-x. 4 root root 4096 Aug 3 23:37 solrhome
drwxr-xr-x. 9 root root 4096 Aug 3 23:06 tomcat
[root@localhost solr]# cp * ../solrcluster -r
将solrcluster下的solrhome和tomcat个复制4份
复制solrhome:
[root@localhost solrcluster]# pwd
/usr/local/solrcluster
[root@localhost solrcluster]# mv solrhome solrhome01
[root@localhost solrcluster]# cp -r solrhome01 solrhome02
[root@localhost solrcluster]# cp -r solrhome01 solrhome03
[root@localhost solrcluster]# cp -r solrhome01 solrhome04
[root@localhost solrcluster]#
复制tomat:
[root@localhost solrcluster]# pwd
/usr/local/solrcluster
[root@localhost solrcluster]# mv tomcat tomcat01
[root@localhost solrcluster]# cp -r tomcat01 tomcat02
[root@localhost solrcluster]# cp -r tomcat01 tomcat03
[root@localhost solrcluster]# cp -r tomcat01 tomcat04
第三步:为每个solr实例关联对应的solrhome
修改web.xml — 修改solrcluster/tomcat01/webapps/solr/WEB-INF/web.xml
[root@localhost WEB-INF]# pwd
/usr/local/solrcluster/tomcat01/webapps/solr/WEB-INF
[root@localhost WEB-INF]# vim web.xml
修改sorlhome的位置
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/usr/local/solrcluster/solrhome01</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
依次修改其他的三个。
[root@localhost WEB-INF]#
[root@localhost WEB-INF]# vim /usr/local/solrcluster/tomcat02/webapps/solr/WEB-INF/web.xml
[root@localhost WEB-INF]# vim /usr/local/solrcluster/tomcat03/webapps/solr/WEB-INF/web.xml
[root@localhost WEB-INF]# vim /usr/local/solrcluster/tomcat04/webapps/solr/WEB-INF/web.xml
第四步:修改每个solrhome下的solr.xml文件
修改host、hostPort两个属性。分别是对应的ip及端口号。
[root@localhost solrhome01]#
[root@localhost solrhome01]# pwd
/usr/local/solrcluster/solrhome01
[root@localhost solrhome01]# vim solr.xml
依次修改其他三个:
[root@localhost solrhome01]# vim /usr/local/solrcluster/solrhome02/solr.xml
[root@localhost solrhome01]# vim /usr/local/solrcluster/solrhome03/solr.xml
[root@localhost solrhome01]# vim /usr/local/solrcluster/solrhome04/solr.xml
第五步:把配置文件上传到zookeeper
使用 /apps/solr-4.10.3/example/scripts/cloud-scripts下的 zkcli.sh命令,
将/usr/local/solrcluster/solrhome01/collection1/conf下的配置文件上传到zookeeper中
[root@localhost cloud-scripts]# pwd
/apps/solr-4.10.3/example/scripts/cloud-scripts
[root@localhost cloud-scripts]# ./zkcli.sh -zkhost 172.16.29.129:2181,172.16.29.129:2182,172.16.29.129:2183 -cmd upconfig -confdir /usr/local/solrcluster/solrhome01/collection1/conf -confname solrconfig
查看是否上传成功:
[root@localhost bin]# pwd
/usr/local/zookeeper/zookeeper01/bin
[root@localhost bin]# ./zkCli.sh
[zk: localhost:2181(CONNECTED) 1] ls /
[dubbo, configs, test, zookeeper]
[zk: localhost:2181(CONNECTED) 2] ls /configs
[solrconfig]
[zk: localhost:2181(CONNECTED) 9] ls /configs/solrconfig
[currency.xml, mapping-FoldToASCII.txt, protwords.txt, synonyms.txt, scripts.conf, stopwords.txt, velocity, _schema_analysis_synonyms_english.json, admin-extra.html, update-script.js, _schema_analysis_stopwords_english.json, solrconfig.xml, admin-extra.menu-top.html, elevate.xml, schema.xml, clustering, spellings.txt, _rest_managed.json, xslt, mapping-ISOLatin1Accent.txt, lang, admin-extra.menu-bottom.html]
[zk: localhost:2181(CONNECTED) 10]
表示上传成功:
第六步:告诉solr实例zookeeper的位置
需要修改tomcat的catalina.sh,每个节点都需要添加。
JAVA_OPTS="-DzkHost=172.16.29.129:2181,172.16.29.129:2182,172.16.29.129:2183"
[root@localhost bin]# vim /usr/local/solrcluster/tomcat01/bin/catalina.sh
[root@localhost bin]# vim /usr/local/solrcluster/tomcat02/bin/catalina.sh
[root@localhost bin]# vim /usr/local/solrcluster/tomcat03/bin/catalina.sh
[root@localhost bin]# vim /usr/local/solrcluster/tomcat04/bin/catalina.sh
第七步:solr集群切片
启动所有solr示例
将集群分为两片,每片两个副本
http://172.16.29.129:8081/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2
切片之后的集群机构:
删除不用collection1
http://172.16.29.129:8081/solr/admin/collections?action=DELETE&name=collection1