centos solr 集群搭建

一、什么是 SolrCloud

  SolrCloud(solr 云)是 Solr 提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用 SolrCloud 的,当索引量很大,搜索请求并发很高,这时需要使用 SolrCloud 来满足这些需求。

  SolrCloud 是基于 Solr 和 Zookeeper 的分布式搜索方案,它的主要思想是使用 Zookeeper 作为集群的配置信息中心。

二、环境准备

1、java 1.7  

  链接:https://pan.baidu.com/s/1ti6j9jD-RwUN5xl3bc3ZDw 密码:oc9a

2、tomcat 7

  链接:https://pan.baidu.com/s/1-TK3AAVtJCRWyhb86i7cRw 密码:zro9

3、zookeeper 3

  链接:https://pan.baidu.com/s/1BHV6vHcHIuj7lalvvR7w_g 密码:csvk

4、solr 4

  链接:https://pan.baidu.com/s/1-fBmxm64y19WUtPSc1Lxdw 密码:wddz

三、搭建 Zookeeper 集群( 在一台机器上模拟搭建 3 台 Zookeeper 的集群 )

1、解压 zookeeper

[root@localhost 桌面]# tar -zxvf zookeeper-3.4.6.tar.gz

2、在 /usr/local 下创建一个 solr-cloud 目录

[root@localhost 桌面]# mkdir /usr/local/solr-cloud

3、复制 3 份 zookeeper 到该目录下

[root@localhost 桌面]# cp -r zookeeper-3.4.6 /usr/local/solr-cloud/zookeeper01
[root@localhost 桌面]# cp -r zookeeper-3.4.6 /usr/local/solr-cloud/zookeeper02
[root@localhost 桌面]# cp -r zookeeper-3.4.6 /usr/local/solr-cloud/zookeeper03

4、在 3 份 zookeeper 中分别创建 data 目录

[root@localhost 桌面]# mkdir /usr/local/solr-cloud/zookeeper01/data
[root@localhost 桌面]# mkdir /usr/local/solr-cloud/zookeeper02/data
[root@localhost 桌面]# mkdir /usr/local/solr-cloud/zookeeper03/data

5、在每个 data 目录下创建一个 myid 文件,文件名就叫做 myid。

[root@localhost 桌面]# touch /usr/local/solr-cloud/zookeeper01/data/myid
[root@localhost 桌面]# touch /usr/local/solr-cloud/zookeeper02/data/myid
[root@localhost 桌面]# touch /usr/local/solr-cloud/zookeeper03/data/myid

6、在 3 个 myid 文件中分别写入1、2、3。( 内容就是每个实例的id )

7、修改配置文件

(1)复制 zoo_sample.cfg 文件并且重命名为 zoo.cfg

[root@localhost 桌面]# cp /usr/local/solr-cloud/zookeeper01/conf/zoo_sample.cfg /usr/local/solr-cloud/zookeeper01/conf/zoo.cfg
[root@localhost 桌面]# cp /usr/local/solr-cloud/zookeeper01/conf/zoo_sample.cfg /usr/local/solr-cloud/zookeeper02/conf/zoo.cfg
[root@localhost 桌面]# cp /usr/local/solr-cloud/zookeeper01/conf/zoo_sample.cfg /usr/local/solr-cloud/zookeeper03/conf/zoo.cfg

(2)分别修改 3 份 zookeeper 的 zoo.cfg 中的 dataDir

dataDir = /usr/local/solr-cloud/zookeeper01/data
dataDir = /usr/local/solr-cloud/zookeeper02/data
dataDir = /usr/local/solr-cloud/zookeeper03/data

(3)分别修改 3 份 zookeeper 的 zoo.cfg 中的 clientPort。( 因为是在一台服务器上模拟的,所以需要改端口。如果是在多台服务器做集群,就不需要改这个属性了 )

clientPort=2181
clientPort=2182
clientPort=2183

(4)配置节点。在每个 zoo.cfg 文件末尾加上下面内容

server.1=192.168.25.129:2881:3881
server.2=192.168.25.129:2882:3882
server.3=192.168.25.129:2883:3883
解析:
server.1:就是在 myid 里面写的 id
192.168.25.129:节点所在的 ip 地址
2881:节点之间进行通行的端口号
3881:节点之间进行投票的端口号

8、启动 3 个 节点

(1)写一个批处理 start-all.sh ,批处理内容如下

cd zookeeper01/bin
./zkServer.sh start
cd ../../
cd zookeeper02/bin
./zkServer.sh start
cd ../../
cd zookeeper03/bin
./zkServer.sh start
cd ../../

(2)修改批处理文件权限,让文件变为可执行的状态

[root@localhost solr-cloud]# chmod 744 start-all.sh

(3)执行批处理,启动 3 个节点

[root@localhost solr-cloud]# ./start-all.sh

(4)查看每个节点的状态( 其中有两个 follower 一个 leader )

[root@localhost solr-cloud]# zookeeper01/bin/zkServer.sh status
[root@localhost solr-cloud]# zookeeper02/bin/zkServer.sh status
[root@localhost solr-cloud]# zookeeper03/bin/zkServer.sh status

9、zookeeper 集群搭建完毕

四、搭建 solr 集群( 在一台机器上模拟搭建 4 台 solr 集群 )

1、解压 tomcat

[root@localhost 桌面]# tar -zxvf apache-tomcat-7.0.47.tar.gz

2、复制 4 份 tomcat 到 solr-cloud 目录下

[root@localhost 桌面]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat01
[root@localhost 桌面]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat02
[root@localhost 桌面]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat03
[root@localhost 桌面]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat04

3、复制 solr 工程到 4 份 tomcat 中

(1)solr 工程下载

  链接:https://pan.baidu.com/s/10FBdkO-2uSniqlPlIquGxQ 密码:264n

(2)复制 solr 工程到 tomcat

[root@localhost 桌面]# cp -r solr /usr/local/solr-cloud/tomcat01/webapps/
[root@localhost 桌面]# cp -r solr /usr/local/solr-cloud/tomcat02/webapps/
[root@localhost 桌面]# cp -r solr /usr/local/solr-cloud/tomcat03/webapps/
[root@localhost 桌面]# cp -r solr /usr/local/solr-cloud/tomcat04/webapps/

4、修改 4 个 tomcat 的端口号

vim tomcat01/conf/server.xml
vim tomcat02/conf/server.xml
vim tomcat03/conf/server.xml
vim tomcat04/conf/server.xml

(1)tomcat1( 修改 3 个地方 )

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

(2)tomcat2 ( 修改 3 个地方 )

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

(3)tomcat3 ( 修改 3 个地方 )

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

(4)tomcat4 ( 修改 3 个地方 )

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

4、复制 4 份 solrhome

(1)solrhome 下载

  链接:https://pan.baidu.com/s/1MDd5QIgFCm7WsS3BMmJkZQ 密码:w6em

(2)复制 4 份 solrhome 到 solr-cloud

[root@localhost 桌面]# cp -r solrhome /usr/local/solr-cloud/solrhome01
[root@localhost 桌面]# cp -r solrhome /usr/local/solr-cloud/solrhome02
[root@localhost 桌面]# cp -r solrhome /usr/local/solr-cloud/solrhome03
[root@localhost 桌面]# cp -r solrhome /usr/local/solr-cloud/solrhome04

5、将 solr 工程的  web.xml 文件指向 solrhome

(1)tomcat1  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)tomcat2   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)tomcat3   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)tomcat4   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>

6、修改 solrhome 中 solr.xml

(1)solrhome01

<solrcloud>
<str name="host">192.168.25.129</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)solrhome02

<solrcloud>
<str name="host">192.168.25.129</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)solrhome03

<solrcloud>
<str name="host">192.168.25.129</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)solrhome04

<solrcloud>
<str name="host">192.168.25.129</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>

五、建立 zookeeper 和 solr 的关联关系

1、修改每个 tomcat/bin/catalina.sh 。( 在对应的地方加上以下内容,zookeeper 的 ip 地址和端口号 )

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

六、让 zookeeper 管理 solrhome

  将任意一个 solrhome/collection1/conf 文件夹上传到 zookeeper 即可

(1)进入 solr-4.10.3 目录( 就是你下载 solr 4,解压后的那个目录 )

(2)进入下面目录,该目录下有一个 zkcli.sh

[root@localhost solr-4.10.3]# cd example/scripts/cloud-scripts/

(3)执行 zkcli.sh ( 注意修改 zookeeper 集群节点 所在的 ip 地址 和端口号 )

[root@localhost cloud-scripts]# ./zkcli.sh -zkhost 192.168.25.129:2181,192.168.25.129:2182,192.168.25.129:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf -confname myconf

(4)查看是否上传成功

  使用 zookeeper 的客户端连接 zookeeper

[root@localhost solr-cloud]# zookeeper01/bin/zkCli.sh -server 192.168.25.129:2182

  连接成功后

[zk: 192.168.25.129:2182(CONNECTED) 2] ls /configs

  返回 myconf ,说明上传成功了

[myconf]

  退出 zookeeper 客户端的连接

[zk: 192.168.25.129:2182(CONNECTED) 4] quit

七、关闭防火墙

service iptablesstop    //暂时关闭防火墙
chkconfig iptables off //永久关闭防火墙

八、启动 4 个tomcat

[root@localhost 桌面]# /usr/local/solr-cloud/tomcat01/bin/startup.sh
[root@localhost 桌面]# /usr/local/solr-cloud/tomcat02/bin/startup.sh
[root@localhost 桌面]# /usr/local/solr-cloud/tomcat03/bin/startup.sh
[root@localhost 桌面]# /usr/local/solr-cloud/tomcat04/bin/startup.sh

九、创建新的 Collection 进行分片处理

  开一个新的浏览器窗口,在地址栏输入以下内容

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

十、刷新浏览器

十一、删除不需要的 Collection 

  开一个新的浏览器窗口,在地址栏输入以下内容

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

 十二、刷新浏览器

 十三、solr 集群搭建完毕

centos solr 集群搭建的相关教程结束。

相关推荐:

CentOS怎样替换系统图标

在CentOS上“替换系统图标”要看你指的是哪一类图标,不同场景做法不一样。下面按常见需求分别说明(以CentOS7/8/Stream+GNOME桌面为主,其他桌面类似)。 一、替换「应用程序图标」(最常见) 方法1:替换.desktop文件中的图标(推荐) 找到对应的.desktop文件 ls/u...

CentOS如何配置Jenkins

下面以CentOS7/CentOS8为例,说明如何安装并配置Jenkins(包含常见坑点),步骤清晰、可直接照做。 一、环境准备 1.系统更新 sudoyumupdate-y 2.安装Java(Jenkins依赖) Jenkins依赖Java8或Java11/17 CentOS7 sudoyumin...

Jenkins如何连CentOS

下面按最常见、最实用的方式给你讲:Jenkins如何连接(管理)CentOS服务器,包括SSH方式和Agent方式,适合新手一步步操作。 一、常见连接方式说明 Jenkins连接CentOS主要有3种方式: 方式 适用场景 ✅SSH插件(PublishOverSSH) Jenkins控制CentOS...

CentOS怎么安装Jenkins

在CentOS(7/8/Stream)上安装Jenkins,推荐使用官方YUM仓库,这是最稳定、最常用的方式。下面按步骤详细说明。 一、准备工作 1️⃣安装Java(Jenkins依赖) Jenkins需要Java8或Java11/17(推荐Java11或17) CentOS7 yuminstall...

CentOS如何卸载Jenkins

在CentOS上卸载Jenkins,通常分为停止服务→卸载软件包→清理残留文件几个步骤。下面按常见情况给你一个完整流程。 一、停止Jenkins服务 sudosystemctlstopjenkins sudosystemctldisablejenkins 确认状态: systemctlstatusj...

Jenkins在CentOS怎么配

在CentOS上配置Jenkins一般分为几个步骤: 安装Jenkins→启动服务→开放端口→初始化配置→安装插件&创建任务。下面给你一个从零到可用的完整流程(适用于CentOS7/8/Stream)。 一、前置条件 1️⃣确认Java已安装(Jenkins依赖Java) Jenkins需要...

如何修复CentOS Jenkins

“修复CentOS上的Jenkins”要看具体出了什么问题,但下面我按最常见故障场景给你一套系统化的排查与修复步骤,你可以对照使用。如果你愿意,也可以把报错日志贴出来,我可以更精准地帮你定位。 一、先确认Jenkins是否真的坏了 1️⃣查看Jenkins状态 systemctlstatusjenk...

CentOS装Jenkins难不难

CentOS上装Jenkins不算难,只要按步骤来,一般10~30分钟就能跑起来。对新手来说,难点主要在Java环境和端口/权限,而不是Jenkins本身。 下面给你一个清晰结论+安装思路+常见坑,看完基本就能装成功。 一、结论先说 ✅难度:低~中 ✅推荐方式:用Jenkins官方RPM(最稳) ❌...