转自:https://blog.csdn.net/yougoule/article/details/78445759  基于原文对实践遇到的问题稍作补充

1.安装及搭建相关环境

1.1环境准备

centos7,jdk1.8,tomcat8,zookeeper3.4.X,solr4.10.X  

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

把目录:.../example/lib/*    solr依赖的jar 拷贝所有tomcat下的webapps/solr/WEB-INF/lib/中

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

如果此时发生ru错误“ 找不到或无法加载主类 org.apache.solr.cloud.ZkCLI”错误,则先执行启动单机solr命令解压solr对于的文件后再重新执行上述命令;

在  /root/solr-4.10.3/example/scripts/cloud-scripts/ 执行如下命令(等待启动成功后关闭窗口即可)

java -jar start.jar 命令

登录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 > 一主一备2个节点


查看分片之后的solrCloud集群节点情况:


6.删除solrCloud集群中多余的collection1

#直接在浏览器输入以下url
http://192.168.31.241:8180/solr/admin/collections?action=DELETE&name=collection1

查看solrCloud集群:

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

基于zookeeper的solrCloud集群搭建相关推荐

  1. solrcloud集群搭建

    solrcloud 集群搭建 初始条件: 1. 三台服务器 IP 地址分别为 192.168.1.133 192.168.1.134 192.168.1.135 2. 使用 solr-5.3.1,zo ...

  2. 基于centos6.5 hbase 集群搭建

    注意本章内容是在上一篇文章"基于centos6.5 hadoop 集群搭建"基础上创建的 1.上传hbase安装包 hbase-0.96.2-hadoop2 我的目录存放在/usr ...

  3. 基于docker的storm集群搭建

    基于docker的storm集群搭建 一.创建docker容器 1.创建storm的局域网 2.创建主节点的容器 3.创建从节点容器 4.配置hosts文件 二.搭建zookeeper集群 1.配置j ...

  4. 【运维技术】Zookeeper单机以及集群搭建教程

    Zookeeper单机以及集群搭建教程 单机搭建 单机安装以及启动 安装zookeeper的前提是必须有java环境 # 选择目录进行下载安装 cd /app # 下载zk,可以去官方网站下载,自己上 ...

  5. zookeeper单机和集群搭建过程详细步骤

    文章目录: ▶ 单机环境搭建 ▶ 设置zookeeper为开机服务 ▶ 集群环境搭建 单机环境搭建 要求: 依赖Java环境 单机搭建过程: 进入到/opt目录下,创建zookeeper 文件夹 cd ...

  6. Solr学习(三)SolrCloud集群搭建与创建Collection

    1.什么是SolrCloud SolrCloud是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时候是不需要使用Solr ...

  7. Zookeeper的Centos集群搭建

    一.Centos 集群搭建 服务器 端口 10.30.1.16 2181 2881 3881 10.30.1.37 2181 2881 3881 10.30.1.38 2181 2881 3881 1 ...

  8. 基于大数据平台的毕业设计01:基于Docker的HDP集群搭建

    前言 好多人问我,这种基于大数据平台的xxxx的毕业设计要怎么做.这个可以参考之前写得关于我大数据毕业设计的文章基于大数据平台的毕业设计.这篇文章是将对之前的毕设进行优化. 个人觉得可以分为两个部分. ...

  9. 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

    引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...

最新文章

  1. 一份数学小白也能读懂的「马尔可夫链蒙特卡洛方法」入门指南
  2. 网络推广外包专员如何通过网络推广外包提升用户推送打开率?
  3. php改密后joomla无法登陆,恢复丢失的Joomla密码的最常用方法
  4. Java中 byte[]数组序列化和fastjson序列化区别
  5. mysql数值类型总结及常用函数
  6. JavaScript多浏览器兼容
  7. 不同浏览器input file样式不一样
  8. (42)Gulp在Yeoman脚手架工具中的应用
  9. Python continue 语句
  10. 常问的数据结构与算法
  11. Redis 官方文档译注
  12. [docker]dockerfile简介与应用
  13. R语言实现非线性回归
  14. ANDROID集成支付宝SDK_APP应用支付宝开发DEMO
  15. Directions Reduction-方向减少
  16. 钉钉网页版入口,存档
  17. 乐行科技获1.08亿元A轮融资,并推出艾特好车 1
  18. 使用ROS melodic下 控制真实UR5机器人 手把手教程
  19. 作为一个前端,你们的焦虑是什么?如何克服呢?
  20. Qt的主窗口背景设置

热门文章

  1. Texlive安装与环境变量配置
  2. 2022-2028年中国节能建材行业深度调研及投资前景预测报告
  3. etcd 笔记(05)— etcd 代码结构、各模块功能、整体架构、各模块之间的交互、请求和应答流程
  4. 浅显易懂 Makefile 入门 (07)— 其它函数(foreach 、if、call、origin )
  5. Docker学习(六)-----Docker数据卷
  6. debian10 mariadb安装
  7. PyTorch入门学习(二):Autogard之自动求梯度
  8. 最大限度地减少块输出中间结果的计算和存储
  9. 客快物流大数据项目(四):大数据项目为什么使用Docker
  10. [C] 深度优先搜索解决连通块/染色问题——求岛的个数