15.易课寄在线购课系统部署-CentOS6环境搭建Solr集群(SolrCloud)

本文详细介绍如何在单台服务器上模拟SolrCloud集群环境,包括创建与配置多个Tomcat实例、Solrhome目录,以及配置相关参数实现集群化部署。

项目源码及视频教程

https://blog.csdn.net/telyfox/article/details/114238172

工具包

链接: https://pan.baidu.com/s/1uvOCOsdO-I32aXHwm3XyzQ 提取码: jc9k

此链接包含博主已经部署好的成品虚拟机,可以根据需要下载。在 “虚拟机 -> 可选” 文件夹下。

安装 Solr 单机版

建议阅读我之前发布的笔记:

11.易课寄在线购课系统部署-CentOS6环境安装Solr

搭建 ZooKeeper 集群

建议阅读我之前发布的笔记:

14.易课寄在线购课系统部署-CentOS6环境搭建ZooKeeper集群

搭建 Solr 集群 (SolrCloud)

本笔记通过在单台服务器上运行 4 个 Solr 实例的方式来模拟 SolrCloud。

创建与配置 Tomcat 实例

创建 4 例 Tomcat

#创建solr-cloud文件夹
cd /usr/local
mkdir solr-cloud
#复制4个tomcat
cp -r /usr/local/apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat01
cp -r /usr/local/apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat02
cp -r /usr/local/apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat03
cp -r /usr/local/apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat04

cp -r /usr/local/solr/tomcat/webapps/solr /usr/local/solr-cloud/tomcat01/webapps/
cp -r /usr/local/solr/tomcat/webapps/solr /usr/local/solr-cloud/tomcat02/webapps/
cp -r /usr/local/solr/tomcat/webapps/solr /usr/local/solr-cloud/tomcat03/webapps/
cp -r /usr/local/solr/tomcat/webapps/solr /usr/local/solr-cloud/tomcat04/webapps/

配置实例 1

vim /usr/local/solr-cloud/tomcat01/conf/server.xml

配置以下内容

<Server port="8105" shutdown="SHUTDOWN">
    
<Connector port="8180" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    
<Connector port="8109" protocol="AJP/1.3" redirectPort="8443" />

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

配置实例 2

vim /usr/local/solr-cloud/tomcat02/conf/server.xml

配置以下内容

<Server port="8205" shutdown="SHUTDOWN">
    
<Connector port="8280" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    
<Connector port="8209" protocol="AJP/1.3" redirectPort="8443" />

配置实例 3

vim /usr/local/solr-cloud/tomcat03/conf/server.xml

配置以下内容

<Server port="8305" shutdown="SHUTDOWN">
    
<Connector port="8380" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    
<Connector port="8309" protocol="AJP/1.3" redirectPort="8443" />

配置实例 4

vim /usr/local/solr-cloud/tomcat04/conf/server.xml

配置以下内容

<Server port="8405" shutdown="SHUTDOWN">
    
<Connector port="8480" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    
<Connector port="8409" protocol="AJP/1.3" redirectPort="8443" />

创建与配置 Solrhome

创建 4 例 Solrhome

cp -r /usr/local/solr/solrhome /usr/local/solr-cloud/solrhome01
cp -r /usr/local/solr/solrhome /usr/local/solr-cloud/solrhome02
cp -r /usr/local/solr/solrhome /usr/local/solr-cloud/solrhome03
cp -r /usr/local/solr/solrhome /usr/local/solr-cloud/solrhome04

配置 web.xml

配置实例 1 的 web.xml
vim /usr/local/solr-cloud/tomcat01/webapps/solr/WEB-INF/web.xml

配置以下内容

<env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/usr/local/solr-cloud/solrhome01/</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
</env-entry>

在这里插入图片描述

配置实例 2 的 web.xml
vim /usr/local/solr-cloud/tomcat02/webapps/solr/WEB-INF/web.xml

配置以下内容

<env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/usr/local/solr-cloud/solrhome02/</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
</env-entry>
配置实例 3 的 web.xml
vim /usr/local/solr-cloud/tomcat03/webapps/solr/WEB-INF/web.xml

配置以下内容

<env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/usr/local/solr-cloud/solrhome03/</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
</env-entry>
配置实例 4 的 web.xml
vim /usr/local/solr-cloud/tomcat04/webapps/solr/WEB-INF/web.xml

配置以下内容

<env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/usr/local/solr-cloud/solrhome04/</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
</env-entry>

配置 solr.xml

配置实例 1 的 solr.xml
vim /usr/local/solr-cloud/solrhome01/solr.xml

配置以下内容

<solrcloud>
    <str name="host">192.168.25.156</str>
    <int name="hostPort">8180</int>
    <str name="hostContext">${hostContext:solr}</str>
    <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
</solrcloud>

在这里插入图片描述

配置实例 2 的 solr.xml
vim /usr/local/solr-cloud/solrhome02/solr.xml

配置以下内容

<solrcloud>
    <str name="host">192.168.25.156</str>
    <int name="hostPort">8280</int>
    <str name="hostContext">${hostContext:solr}</str>
    <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
</solrcloud>
配置实例 3 的 solr.xml
vim /usr/local/solr-cloud/solrhome03/solr.xml

配置以下内容

<solrcloud>
    <str name="host">192.168.25.156</str>
    <int name="hostPort">8380</int>
    <str name="hostContext">${hostContext:solr}</str>
    <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
</solrcloud>
配置实例 4 的 solr.xml
vim /usr/local/solr-cloud/solrhome04/solr.xml

配置以下内容

<solrcloud>
    <str name="host">192.168.25.156</str>
    <int name="hostPort">8480</int>
    <str name="hostContext">${hostContext:solr}</str>
    <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
</solrcloud>

配置 catalina.sh

配置实例 1 的 catalina.sh
vim /usr/local/solr-cloud/tomcat01/bin/catalina.sh

配置以下内容

JAVA_OPTS="-DzkHost=192.168.25.155:2181,192.168.25.155:2182,192.168.25.155:2183"

在这里插入图片描述

配置实例 2 的 catalina.sh
vim /usr/local/solr-cloud/tomcat02/bin/catalina.sh

配置以下内容

JAVA_OPTS="-DzkHost=192.168.25.155:2181,192.168.25.155:2182,192.168.25.155:2183"
配置实例 3 的 catalina.sh
vim /usr/local/solr-cloud/tomcat03/bin/catalina.sh

配置以下内容

JAVA_OPTS="-DzkHost=192.168.25.155:2181,192.168.25.155:2182,192.168.25.155:2183"
配置实例 4 的 catalina.sh
vim /usr/local/solr-cloud/tomcat04/bin/catalina.sh

配置以下内容

JAVA_OPTS="-DzkHost=192.168.25.155:2181,192.168.25.155:2182,192.168.25.155:2183"

使用 zkcli.sh 工具上传配置文件

yum install -y unzip zip
cd /usr/local/solr-4.10.3/example/scripts/cloud-scripts/
./zkcli.sh -zkhost 192.168.25.155:2181,192.168.25.155:2182,192.168.25.155:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf -confname myconf

查看状态

cd /usr/local/solr-cloud/zookeeper01/bin
./zkCli.sh -server 192.168.25.155:2182
ls /configs/myconf
quit

在这里插入图片描述

编写启动 Tomcat 集群的脚本

vim /usr/local/solr-cloud/start-tomcat-all.sh
cd /usr/local/solr-cloud/tomcat01/bin
./startup.sh
cd /usr/local/solr-cloud/tomcat02/bin
./startup.sh
cd /usr/local/solr-cloud/tomcat03/bin
./startup.sh
cd /usr/local/solr-cloud/tomcat04/bin
./startup.sh

修改权限

cd /usr/local/solr-cloud
chmod u+x start-tomcat-all.sh

开启 Tomcat 集群

/usr/local/solr-cloud/start-tomcat-all.sh

查看启动日志

tail -300f /usr/local/solr-cloud/tomcat01/logs/catalina.out
tail -300f /usr/local/solr-cloud/tomcat02/logs/catalina.out
tail -300f /usr/local/solr-cloud/tomcat03/logs/catalina.out
tail -300f /usr/local/solr-cloud/tomcat04/logs/catalina.out

编写关闭 Tomcat 集群的脚本

vim /usr/local/solr-cloud/shutdown-tomcat-all.sh
cd /usr/local/solr-cloud/tomcat01/bin
./shutdown.sh
cd /usr/local/solr-cloud/tomcat02/bin
./shutdown.sh
cd /usr/local/solr-cloud/tomcat03/bin
./shutdown.sh
cd /usr/local/solr-cloud/tomcat04/bin
./shutdown.sh

修改权限

cd /usr/local/solr-cloud
chmod u+x shutdown-tomcat-all.sh

关闭 Tomcat 集群

/usr/local/solr-cloud/shutdown-tomcat-all.sh

创建新的 Collection 进行分片处理

在浏览器中访问以下网址

http://192.168.25.156:8180/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2

在这里插入图片描述

访问

http://192.168.25.156:8180/solr/#/~cloud

可看到结果

在这里插入图片描述

删除不用的 Collection

在浏览器中访问以下网址

http://192.168.25.156:8180/solr/admin/collections?action=DELETE&name=collection1

在这里插入图片描述

访问

http://192.168.25.156:8180/solr/#/~cloud

可看到结果

在这里插入图片描述

开机自启

vim /etc/rc.d/rc.local

添加

/usr/local/solr-cloud/start-tomcat-all.sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chen Xingxu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值