基于zookeeper的solrCloud集群搭建

2018-02-27 10:54:39来源:oschina作者:PengTdy人点击

分享

1.安装及搭建相关环境
1.1环境准备

centos7,jdk1.8,tomcat8,zookeeper3.4.X,solr4.10.X链接: https://pan.baidu.com/s/1i47IuKd 密码: emqt



2.zookeeper集群搭建
2.1复制zookeeper
[root@MiWiFi-R3-srv ~]# mkdir /usr/local/solr-cloud
[root@MiWiFi-R3-srv ~]# cp -r zookeeper-3.4.6 /usr/local/solr-cloud/zookeeper01
[root@MiWiFi-R3-srv ~]# cp -r zookeeper-3.4.6 /usr/local/solr-cloud/zookeeper02
[root@MiWiFi-R3-srv ~]# cp -r zookeeper-3.4.6 /usr/local/solr-cloud/zookeeper03
2.2所有的zookeeper节点
2.2.1配置第一个zookeeper节点
[root@MiWiFi-R3-srv ~]# cd /usr/local/solr-cloud/zookeeper01
[root@MiWiFi-R3-srv zookeeper01]# mkdir data
[root@MiWiFi-R3-srv zookeeper01]# echo 1 > data/myid
2.2.2配置第一个节点的cfg文件
[root@MiWiFi-R3-srv conf]# mv zoo_sample.cfg zoo.cfg
[root@MiWiFi-R3-srv conf]# vim zoo.cfg
#修改dataDir,指向data目录
dataDir=/usr/local/solr-cloud/zookeeper01/data/
#solr的通讯端口(集群中不能重复)
clientPort=2182
#在文件末尾添加以下配置
server.1=192.168.31.241:2887:3887
server.2=192.168.31.241:2888:3888
server.3=192.168.31.241:2889:3889
#第一个端口为通讯端口,第二个为投票选举端口
2.2.3配置第二个zookeeper节点
[root@MiWiFi-R3-srv conf]# cd ../../ [root@MiWiFi-R3-srv solr-cloud]# cd zookeeper02 [root@MiWiFi-R3-srv zookeeper02]# mkdir data [root@MiWiFi-R3-srv zookeeper02]# echo 2 > data/myid
2.2.4配置第二个节点的cfg文件
[root@MiWiFi-R3-srv zookeeper02]# cd conf/
[root@MiWiFi-R3-srv conf]# cp zoo_sample.cfg zoo.cfg
[root@MiWiFi-R3-srv conf]# vim zoo.cfg
#修改dataDir,指向data目录
dataDir=/usr/local/solr-cloud/zookeeper02/data/
#solr的通讯端口(集群中不能重复)
clientPort=2183
#在文件末尾添加以下配置
server.1=192.168.31.241:2887:3887
server.2=192.168.31.241:2888:3888
server.3=192.168.31.241:2889:3889
#第一个端口为通讯端口,第二个为投票选举端口
2.2.5配置第三个zookeeper节点
[root@MiWiFi-R3-srv conf]# cd ../../ [root@MiWiFi-R3-srv solr-cloud]# cd zookeeper03 [root@MiWiFi-R3-srv zookeeper03]# mkdir data [root@MiWiFi-R3-srv zookeeper03]# echo 3 > data/myid
2.2.6配置第三个节点的cfg文件
[root@MiWiFi-R3-srv zookeeper03]# cd conf/
[root@MiWiFi-R3-srv conf]# cp zoo_sample.cfg zoo.cfg
[root@MiWiFi-R3-srv conf]# vim zoo.cfg
#修改dataDir,指向data目录
dataDir=/usr/local/solr-cloud/zookeeper03/data/
#solr的通讯端口(集群中不能重复)
clientPort=2184
#在文件末尾添加以下配置
server.1=192.168.31.241:2887:3887
server.2=192.168.31.241:2888:3888
server.3=192.168.31.241:2889:3889
#第一个端口为通讯端口,第二个为投票选举端口
2.3配置集群统一启动批处理
[root@MiWiFi-R3-srv conf]# cd ../../ [root@MiWiFi-R3-srv solr-cloud]# vim start-zookeeper.sh
cd zookeeper01/bin
./zkServer.sh start
cd ../../
cd zookeeper02/bin
./zkServer.sh start
cd ../../
cd zookeeper03/bin
./zkServer.sh start
[root@MiWiFi-R3-srv solr-cloud]# chmod u+x start-zookeeper.sh
2.4启动zookeeper集群
[root@MiWiFi-R3-srv solr-cloud]# ./start-zookeeper.sh
JMX enabled by default
Using config: /usr/local/solr-cloud/zookeeper01/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
JMX enabled by default
Using config: /usr/local/solr-cloud/zookeeper02/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
JMX enabled by default
Using config: /usr/local/solr-cloud/zookeeper03/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
3.solrCloud集群搭建
3.1复制tomcat
[root@MiWiFi-R3-srv solr-cloud]# cp -r /root/apache-tomcat-8.5.23 tomcat01 [root@MiWiFi-R3-srv solr-cloud]# cp -r /root/apache-tomcat-8.5.23 tomcat02 [root@MiWiFi-R3-srv solr-cloud]# cp -r /root/apache-tomcat-8.5.23 tomcat03 [root@MiWiFi-R3-srv solr-cloud]# cp -r /root/apache-tomcat-8.5.23 tomcat04
3.2配置所有tomcat的server.xml
3.2.1配置第一个tomcat的server.xml
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat01/conf/server.xml
#第22行

#第69行
connectionTimeout="20000"
redirectPort="8443" />
#第116行

3.2.2配置第二个tomcat的server.xml
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat02/conf/server.xml
#第22行

#第69行
connectionTimeout="20000"
redirectPort="8443" />
#第116行

3.2.3配置第三个tomcat的server.xml
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat03/conf/server.xml
#第22行

#第69行
connectionTimeout="20000"
redirectPort="8443" />
#第116行

3.2.4配置第四个tomcat的server.xml
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat04/conf/server.xml
#第22行

#第69行
connectionTimeout="20000"
redirectPort="8443" />
#第116行

3.3复制solr单机版的solr文件到每个集群节点中
[root@MiWiFi-R3-srv solr-cloud]# cp -r ../solr/tomcat/webapps/solr/ tomcat01/webapps/ [root@MiWiFi-R3-srv solr-cloud]# cp -r ../solr/tomcat/webapps/solr/ tomcat02/webapps/ [root@MiWiFi-R3-srv solr-cloud]# cp -r ../solr/tomcat/webapps/solr/ tomcat03/webapps/ [root@MiWiFi-R3-srv solr-cloud]# cp -r ../solr/tomcat/webapps/solr/ tomcat04/webapps/
3.4复制单机版solrhome到solr-cloud文件下
[root@MiWiFi-R3-srv solr-cloud]# cp -r ../solr/solrhome/ solrhome01 [root@MiWiFi-R3-srv solr-cloud]# cp -r ../solr/solrhome/ solrhome02 [root@MiWiFi-R3-srv solr-cloud]# cp -r ../solr/solrhome/ solrhome03 [root@MiWiFi-R3-srv solr-cloud]# cp -r ../solr/solrhome/ solrhome04
3.5配置所有solrhome节点的solr.xml文件
3.5.1修改solrhome01的solr.xml中solrcloud配置
[root@MiWiFi-R3-srv solr-cloud]# vim solrhome01/solr.xml
#第32行;host参数对应tomcat01的ip地址
192.168.31.241
#第33行;hostPort参数对应tomcat01的端口号
8180
3.5.2修改solrhome02的solr.xml中solrcloud配置
[root@MiWiFi-R3-srv solr-cloud]# vim solrhome02/solr.xml
#第32行;host参数对应tomcat02的ip地址
192.168.31.241
#第33行;hostPort参数对应tomcat02的端口号
8280
3.5.3修改solrhome03的solr.xml中solrcloud配置
[root@MiWiFi-R3-srv solr-cloud]# vim solrhome03/solr.xml
#第32行;host参数对应tomcat03的ip地址
192.168.31.241
#第33行;hostPort参数对应tomcat03的端口号
8380
3.5.4修改solrhome04的solr.xml中solrcloud配置
[root@MiWiFi-R3-srv solr-cloud]# vim solrhome04/solr.xml
#第32行;host参数对应tomcat04的ip地址
192.168.31.241
#第33行;hostPort参数对应tomcat04的端口号
8480
3.6建立solr与solrhome之间的关联关系使其互相关联
3.6.1修改tomcat01下的web.xml文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat01/webapps/solr/WEB-INF/web.xml
#第42行;solrhome01的地址
/usr/local/solr-cloud/solrhome01/
3.6.2修改tomcat02下的web.xml文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat02/webapps/solr/WEB-INF/web.xml
#第42行;solrhome02的地址
/usr/local/solr-cloud/solrhome02/
3.6.3修改tomcat03下的web.xml文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat03/webapps/solr/WEB-INF/web.xml
#第42行;solrhome03的地址
/usr/local/solr-cloud/solrhome03/
3.6.4修改tomcat04下的web.xml文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat04/webapps/solr/WEB-INF/web.xml
#第42行;solrhome04的地址
/usr/local/solr-cloud/solrhome04/
3.7配置tomcat节点使其关联zookeeper集群
3.7.1配置tomcat01的catalina.sh文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat01/bin/catalina.sh
#第269行(不用动);
#JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"
#在第269行下面添加一行JAVA_OPTS的配置
JAVA_OPTS="-DzkHost=192.168.31.241:2182,192.168.31.241:2183,192.168.31.241:2184"
#解释:上面的三个ip为三个zookeeper的ip+solr的通讯端口(clientPort)
3.7.2配置tomcat02的catalina.sh文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat02/bin/catalina.sh
#第269行(不用动);
#JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"
#在第269行下面添加一行JAVA_OPTS的配置
JAVA_OPTS="-DzkHost=192.168.31.241:2182,192.168.31.241:2183,192.168.31.241:2184"
#解释:上面的三个ip为三个zookeeper的ip+solr的通讯端口(clientPort)
3.7.3配置tomcat03的catalina.sh文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat03/bin/catalina.sh
#第269行(不用动);
#JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"
#在第269行下面添加一行JAVA_OPTS的配置
JAVA_OPTS="-DzkHost=192.168.31.241:2182,192.168.31.241:2183,192.168.31.241:2184"
#解释:上面的三个ip为三个zookeeper的ip+solr的通讯端口(clientPort)
3.7.4配置tomcat04的catalina.sh文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat04/bin/catalina.sh
#第269行(不用动);
#JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"
#在第269行下面添加一行JAVA_OPTS的配置
JAVA_OPTS="-DzkHost=192.168.31.241:2182,192.168.31.241:2183,192.168.31.241:2184"
#解释:上面的三个ip为三个zookeeper的ip+solr的通讯端口(clientPort)
3.8使用zookeeper管理solr的配置文件
[root@MiWiFi-R3-srv solr-cloud]# cd /root/solr-4.10.3/example/scripts/cloud-scripts/

使用zkcli.sh脚本上传solr的配置文件到zookeeper集群中:


[root@MiWiFi-R3-srv cloud-scripts]# ./zkcli.sh -zkhost 192.168.31.241:2182,192.168.31.241:2183,192.168.31.241:2184 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf/ -confname myconf

登录zookeeper客户端:


[root@MiWiFi-R3-srv cloud-scripts]# cd /usr/local/solr-cloud/zookeeper01/bin/ [root@MiWiFi-R3-srv bin]# ./zkCli.sh -server 192.168.31.241:2182

查看myconf文件是否上传成功:


[zk: 192.168.31.241:2182(CONNECTED) 3] ls /configs/myconf
[currency.xml, mapping-FoldToASCII.txt, protwords.txt, scripts.conf, synonyms.txt, 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, xslt, _rest_managed.json, mapping-ISOLatin1Accent.txt, spellings.txt, lang, admin-extra.menu-bottom.html]

退出zookeeper客户端


[zk: 192.168.31.241:2182(CONNECTED) 4] quit
3.8启动tomcat集群

创建tomcat集群启动批处理:


[root@MiWiFi-R3-srv bin]# cd ../../ [root@MiWiFi-R3-srv solr-cloud]# vim start-tomcat.sh

添加以下内容:


/usr/local/solr-cloud/tomcat01/bin/startup.sh
/usr/local/solr-cloud/tomcat02/bin/startup.sh
/usr/local/solr-cloud/tomcat03/bin/startup.sh
/usr/local/solr-cloud/tomcat04/bin/startup.sh

添加执行权限:


[root@MiWiFi-R3-srv solr-cloud]# chmod u+x start-tomcat.sh

启动tomcat集群:


[root@MiWiFi-R3-srv solr-cloud]# ./start-tomcat.sh
4.访问solrCloud集群

访问:http://192.168.31.241:8180/solr/#/~cloud



这里写图片描述


5.对solrCloud集群分片
#直接在浏览器输入以下url
http://192.168.31.241:8180/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2
#解释:name=collection2 > 创建一个新的collection
#numShards=2 > 分成2片
#replicationFactor=2 > 有两个备份节点

这里写图片描述


查看分片之后的solrCloud集群节点情况:这里写图片描述


6.删除solrCloud集群中多余的collection1
#直接在浏览器输入以下url
http://192.168.31.241:8180/solr/admin/collections?action=DELETE&name=collection1

这里写图片描述


查看solrCloud集群:这里写图片描述


至此,基于zookeeper的solrCloud集群搭建就完成了!!!

如果您喜欢这篇文章就请关注我的博客和朋友一起分享吧!关注我: ☛ http://blog.csdn.net/yougoule

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台