基于zookeeper的solrCloud集群搭建

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行
<Server port="8105" shutdown="SHUTDOWN">#第69行
<Connector port="8180" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />#第116行
<Connector port="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行
<Server port="8205" shutdown="SHUTDOWN">#第69行
<Connector port="8280" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />#第116行
<Connector port="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行
<Server port="8305" shutdown="SHUTDOWN">#第69行
<Connector port="8380" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />#第116行
<Connector port="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行
<Server port="8405" shutdown="SHUTDOWN">#第69行
<Connector port="8480" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />#第116行
<Connector port="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地址
<str name="host">192.168.31.241</str>#第33行;hostPort参数对应tomcat01的端口号
<int name="hostPort">8180</int>
3.5.2修改solrhome02的solr.xml中solrcloud配置
[root@MiWiFi-R3-srv solr-cloud]# vim solrhome02/solr.xml
#第32行;host参数对应tomcat02的ip地址
<str name="host">192.168.31.241</str>#第33行;hostPort参数对应tomcat02的端口号
<int name="hostPort">8280</int>
3.5.3修改solrhome03的solr.xml中solrcloud配置
[root@MiWiFi-R3-srv solr-cloud]# vim solrhome03/solr.xml
#第32行;host参数对应tomcat03的ip地址
<str name="host">192.168.31.241</str>#第33行;hostPort参数对应tomcat03的端口号
<int name="hostPort">8380</int>
3.5.4修改solrhome04的solr.xml中solrcloud配置
[root@MiWiFi-R3-srv solr-cloud]# vim solrhome04/solr.xml
#第32行;host参数对应tomcat04的ip地址
<str name="host">192.168.31.241</str>#第33行;hostPort参数对应tomcat04的端口号
<int name="hostPort">8480</int>
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的地址
<env-entry-value>/usr/local/solr-cloud/solrhome01/</env-entry-value>
3.6.2修改tomcat02下的web.xml文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat02/webapps/solr/WEB-INF/web.xml
#第42行;solrhome02的地址
<env-entry-value>/usr/local/solr-cloud/solrhome02/</env-entry-value>
3.6.3修改tomcat03下的web.xml文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat03/webapps/solr/WEB-INF/web.xml
#第42行;solrhome03的地址
<env-entry-value>/usr/local/solr-cloud/solrhome03/</env-entry-value>
3.6.4修改tomcat04下的web.xml文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat04/webapps/solr/WEB-INF/web.xml
#第42行;solrhome04的地址
<env-entry-value>/usr/local/solr-cloud/solrhome04/</env-entry-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

转载于:https://www.cnblogs.com/pengtdy/p/8306203.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287021.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【小白必懂】C语言求完全数

注意&#xff1a;学生党如果存在付费问题可以加我好友&#xff0c;我可以开单篇短时间的免费哟~ 私聊我就好~ 情景再现 &#x1f478;小媛&#xff1a;小C&#xff0c;你知道什么是完全数吗&#xff1f; &#x1f430;小C&#xff1a;知道呀&#xff0c;难道是今天老师又出题…

台式计算机硬件输入设备,台式电脑硬件配置有哪些

台式电脑硬件配置你知道有哪些?电脑的配置一般是指电脑的硬件配件的高档程度、性价比等&#xff0c;电脑的性能好坏主要决定于以下主要硬件配置。一起来看看台式电脑硬件配置有哪些&#xff0c;欢迎查阅!组装台式电脑配置1、实用性机型建议&#xff1a;首选1&#xff1a;intel…

Android WebView和JavaScript交互

JavaScript在现在的网页设计中用得很多&#xff0c;Android 的WebView可以载入网页&#xff0c;WebView也设计了与JavaScript通信的桥梁。这篇主要介绍一下WebViewk控件如何和JavaScript进行交互。 WebView: WebView和网页相关的主要有一下几个方法&#xff1a;  setWebViewCl…

Microsoft Dev Box 带来全新云上开发体验

在 5 月 24 日, 微软的产品经理 Anthony Cangialosi 在 Azure 社区发布了一篇博客(Introducing Microsoft Dev Box)&#xff0c; 宣布推出 Microsoft Dev Box !这是一种新的云服务&#xff0c;托管在 Microsoft Azure 中&#xff0c;提供了一个开箱即用的开发工作站&#xff0c…

游戏开发如此简单?我直接创建了一个游戏场景【python 游戏实战 02】

前言 本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新…

【三维激光扫描】第五章:基于点云数据的三维建模

第一节 绘制立面图 1. 打开CAD 2014,新建一个文件,模板选择acadiso.dwt,如下图。 2. 点击插入→创建点云。

Flutter之基本数据类型测试

1、Flutter的数据基本类型 Dart语言里一切皆为对象&#xff0c;所以如果没有将变初始化,那么它的默认值为null Number(int、doubkle)StringBoolean(bool) List Map2、测试代码 void testData() {//Number包含了int和doubleint a 4;int b 8;print(a b);int a1;if (a null)…

清北·NOIP2017济南考前冲刺班 DAY1 morning

立方数(cubic) Time Limit:1000ms Memory Limit:128MB 题目描述 LYK定义了一个数叫“立方数”&#xff0c;若一个数可以被写作是一个正整数的3次方&#xff0c;则这个数就是立方数&#xff0c;例如1,8,27就是最小的3个立方数。 现在给定一个数P&#xff0c;LYK想要知道这个数…

2020美国纽约大学计算机科学排名,2020美国纽约大学排名第几

纽约大学在2020年《美国新闻与世界报道》美国全国性大学排名中排名第29名&#xff0c;在2020年QS世界大学排名中排名第39名。纽约大学专业排名QS世界大学生命科学与医学专业排名 2020年 第40名QS世界大学医学专业排名 2020年 第34名QS世界大学牙科专业排名 2020年 第14名QS世界…

游戏角色开始动起来了,真帅!【python 游戏实战 03】

前言 本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新…

如何让 ASP.NET Core 支持绑定查询字符串中的数组

前言有网友在交流群中询问&#xff0c;如何让 ASP.NET Core 支持绑定查询字符串中的数组&#xff1a;据说&#xff0c;在 .NET 7 中已经支持了&#xff1a;但是&#xff0c;在这之前的 .NET 版本能实现相同功能吗&#xff1f;ByteArrayModelBinder这时&#xff0c;群里的网友提…

Docker Storm开发环境搭建

2019独角兽企业重金招聘Python工程师标准>>> 1. compose文件 storm-stack.yml version: 3.1services:zookeeper:image: zookeepercontainer_name: zookeeperrestart: alwaysports:- 2181:2181nimbus:image: stormcontainer_name: nimbuscommand: storm nimbusdepend…

南方方洲号无人测量船系统简介

南方智能测量船系统由小型无人船、自动导航模块、声纳探测模块、外围传感模块、岸基操控终端、无人船专用软件等部分组成。将先进的卫星定位、声纳、传感器与智能导航控制等众多技术相结合,提出了高精度、智能化、集成化、机动化、网络化的勘测解决方案。该系统能自主航行并完…

1小时1篇文学会python再做个飞机大战游戏

注&#xff1a; 想慢慢学习的同学可以看我的 《python 入门到游戏实战专栏》&#xff08;更新中&#xff09; 想学 C 的同学可以看《大话系列之C语言》&#xff08;基本更新完&#xff09; 想学 C 的同学可以看《大话C》&#xff08;更新中&#xff09; 想做习题的可以看《大学…

如何优雅的编写git的提交信息

前言在公司的日常工作当中或者个人的开源项目&#xff0c;将代码提交到代码库时。都会遇到下面这样的对话框&#xff0c;通常都会随便写点内容在里面。当遇到问题需要回溯的时候就成了给自己造成的麻烦&#xff0c;因为无法通过commit message来非常直观的看到这一次提交了什么…

android快捷开发之Retrofit网络加载框架的简单使用

大家都知道&#xff0c;安卓最大的特点就是开源化&#xff0c;这自然会产生很多十分好用的第三方API&#xff0c;而基本每一个APP都会与网络操作和缓存处理机制打交道&#xff0c;当然&#xff0c;你可以自己通过HttpUrlConnection再通过返回数据进行解析解决&#xff0c;而我们…

打开计算机无法显示工具栏,任务栏不显示打开的窗口怎么办教程

我们在使用电脑的时候&#xff0c;打开很多程序的时候&#xff0c;会最小化某些窗口&#xff0c;只留在用的窗口&#xff0c;而最小化都是缩小为一个图标放入屏幕下方的任务栏的&#xff0c;但有时候不知道为什么任务栏不显示打开的窗口了&#xff0c;这时候也就无法直接用鼠标…

ArcGIS 10.6提取道路中心线的两种方法经典教程

我们工作中碰到的道路数据通常为面状,需要提取道路中心线,本文讲解ArcGIS10.6中从面状道路数据中提取道路中心线的两种常用经典方法。 方法一:使用ArcGIS 10.6提供的提取道路中心线工具 本实验中使用到面状数据如下所示: 首先,将面状数据转为线状数据。 转完之后,道路尽头…

衡量计算机浮点数操作性能,计算机系统基础:计算机性能评价知识笔记

1、计算机性能常用的性能评测方法1.1 时钟频率计算机的时钟频率可以反映出机器的运行速度。一般主频越高&#xff0c;速度越快。1.2 指令执行速度加法指令执行速度是衡量计算机性能指标的重要指标之一。1.3 等效指令速度法随着计算机指令系统发展&#xff0c;种类越来越多&…

python 写游戏好简单啊,我用键盘可以随意控制角色了【python 游戏实战 04】

前言 本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新…