热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于zookeeper的solrCloud集群搭建

1.安装及搭建相关环境1.1环境准备centos7,jdk1.8,tomcat8,zookeeper3.4.X,solr4.10.X链接:https:pan.baidu.

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行
"8105" shutdown="SHUTDOWN">

#第69行
"8180" protocol="HTTP/1.1"
cOnnectionTimeout="20000"
redirectPort="8443" />

#第116行
"8109" protocol="AJP/1.3" redirectPort="8443" />
3.2.2配置第二个tomcat的server.xml
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat02/conf/server.xml 
#第22行
"8205" shutdown="SHUTDOWN">

#第69行
"8280" protocol="HTTP/1.1"
cOnnectionTimeout="20000"
redirectPort="8443" />

#第116行
"8209" protocol="AJP/1.3" redirectPort="8443" />
3.2.3配置第三个tomcat的server.xml
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat03/conf/server.xml 
#第22行
"8305" shutdown="SHUTDOWN">

#第69行
"8380" protocol="HTTP/1.1"
cOnnectionTimeout="20000"
redirectPort="8443" />

#第116行
"8309" protocol="AJP/1.3" redirectPort="8443" />
3.2.4配置第四个tomcat的server.xml
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat04/conf/server.xml 
#第22行
"8405" shutdown="SHUTDOWN">

#第69行
"8480" protocol="HTTP/1.1"
cOnnectionTimeout="20000"
redirectPort="8443" />

#第116行
"8409" protocol="AJP/1.3" redirectPort="8443" />
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地址
"host">192.168.31.241

#第33行;hostPort参数对应tomcat01的端口号
<int name="hostPort">8180int>
3.5.2修改solrhome02的solr.xml中solrcloud配置
[root@MiWiFi-R3-srv solr-cloud]# vim solrhome02/solr.xml
#第32行;host参数对应tomcat02的ip地址
"host">192.168.31.241

#第33行;hostPort参数对应tomcat02的端口号
<int name="hostPort">8280int>
3.5.3修改solrhome03的solr.xml中solrcloud配置
[root@MiWiFi-R3-srv solr-cloud]# vim solrhome03/solr.xml
#第32行;host参数对应tomcat03的ip地址
"host">192.168.31.241

#第33行;hostPort参数对应tomcat03的端口号
<int name="hostPort">8380int>
3.5.4修改solrhome04的solr.xml中solrcloud配置
[root@MiWiFi-R3-srv solr-cloud]# vim solrhome04/solr.xml
#第32行;host参数对应tomcat04的ip地址
"host">192.168.31.241

#第33行;hostPort参数对应tomcat04的端口号
<int name="hostPort">8480int>
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的地址
value>/usr/local/solr-cloud/solrhome01/value>
3.6.2修改tomcat02下的web.xml文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat02/webapps/solr/WEB-INF/web.xml
#第42行;solrhome02的地址
value>/usr/local/solr-cloud/solrhome02/value>
3.6.3修改tomcat03下的web.xml文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat03/webapps/solr/WEB-INF/web.xml
#第42行;solrhome03的地址
value>/usr/local/solr-cloud/solrhome03/value>
3.6.4修改tomcat04下的web.xml文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat04/webapps/solr/WEB-INF/web.xml
#第42行;solrhome04的地址
value>/usr/local/solr-cloud/solrhome04/value>
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


推荐阅读
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • uniapp开发H5解决跨域问题的两种代理方法
    本文介绍了uniapp开发H5解决跨域问题的两种代理方法,分别是在manifest.json文件和vue.config.js文件中设置代理。通过设置代理根域名和配置路径别名,可以实现H5页面的跨域访问。同时还介绍了如何开启内网穿透,让外网的人可以访问到本地调试的H5页面。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • 本文是一篇翻译文章,介绍了async/await的用法和特点。async关键字被放置在函数前面,意味着该函数总是返回一个promise。文章还提到了可以显式返回一个promise的方法。该特性使得async/await更易于理解和使用。本文还提到了一些可能的错误,并希望读者能够指正。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了brain的意思、读音、翻译、用法、发音、词组、同反义词等内容,以及脑新东方在线英语词典的相关信息。还包括了brain的词汇搭配、形容词和名词的用法,以及与brain相关的短语和词组。此外,还介绍了与brain相关的医学术语和智囊团等相关内容。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
author-avatar
卜土杠烟2502932477
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有