在linux上搭建Solr集群的方法

 更新时间:2020年10月20日 13:04  点击:1565

什么是SolrCloud

SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大搜索请求并发很高,这时需要使用SolrCloud来满足这些需求。
SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心。

Solr集群的系统架构

需要实现的solr集群架构

Zookeeper作为集群的管理工具。
1、集群管理:容错、负载均衡。
2、配置文件的集中管理
3、集群的入口

需要实现zookeeper 高可用。需要搭建集群。建议是奇数节点。需要三个zookeeper服务器。 投票选举 需要超过半数以上

搭建solr集群需要7台服务器。

搭建伪分布式:
需要三个zookeeper节点
需要四个tomcat节点。

建议虚拟机的内容1G以上。

一.在linux上安装zookeeper集群 https://blog.csdn.net/lushizhuo9655/article/details/109135460

二.在linux上搭建solr集群

Solr集群的搭建

根据单机版的操作安装好solr和对应的业务域 https://blog.csdn.net/lushizhuo9655/article/details/109033855

第一步:创建四个tomcat实例。每个tomcat运行在不同的端口。8180、8280、8380、8480

cd /root
cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat01
cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat02
cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat03
cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat04
cd /usr/local/solr-cloud/
ll

第二步:部署solr的war包。把单机版的solr工程复制到集群中的tomcat中。(记得每个tomcat的端口要记得修改 每个tomcat改三个端口)

cp -r ../solr/tomcat/webapps/solr/ tomcat01/webapps/
cp -r ../solr/tomcat/webapps/solr/ tomcat02/webapps/
cp -r ../solr/tomcat/webapps/solr/ tomcat03/webapps/
cp -r ../solr/tomcat/webapps/solr/ tomcat04/webapps/
vim tomcat01/conf/server.xml
vim tomcat02/conf/server.xml
vim tomcat03/conf/server.xml
vim tomcat04/conf/server.xml

第三步:为每个solr实例创建一个对应的solrhome。使用单机版的solrhome复制四份。

cp -r ../solr/solrhome/ solrhome01
cp -r ../solr/solrhome/ solrhome02
cp -r ../solr/solrhome/ solrhome03
cp -r ../solr/solrhome/ solrhome04

第四步:需要修改solr的web.xml文件。把solrhome关联起来。

vim tomcat01/webapps/solr/WEB-INF/web.xml
vim tomcat02/webapps/solr/WEB-INF/web.xml
vim tomcat03/webapps/solr/WEB-INF/web.xml
vim tomcat04/webapps/solr/WEB-INF/web.xml

改成对应的02 03 04

第五步:配置solrCloud相关的配置。每个solrhome下都有一个solr.xml,把其中的ip及端口号配置好。

vim solrhome01/solr.xml 
vim solrhome02/solr.xml 
vim solrhome03/solr.xml 
vim solrhome04/solr.xml

第六步:修改tomcat/bin目录下的catalina.sh 文件,关联solr和zookeeper。

cd tomcat01/bin/
ll
vim catalina.sh

把此配置添加到配置文件中:

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

cd ..
cd ..
vim tomcat02/bin/catalina.sh
vim tomcat03/bin/catalina.sh
vim tomcat04/bin/catalina.sh

配置文件都加上那一句配置的代码

第七步:让zookeeper统一管理配置文件。需要把solrhome/collection1/conf目录上传到zookeeper。上传任意solrhome中的配置文件即可。

cd solrhome01
ll
cd collection1/conf

使用工具上传配置文件:/root/solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh

cd /root/solr-4.10.3/example/scripts/cloud-scripts/

配置文件的文件夹上传到zookeeper

./zkcli.sh -zkhost 192.168.0.245:2181,192.168.0.245:2182,192.168.0.245:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf -confname myconf

查看zookeeper上的配置文件:

使用zookeeper目录下的bin/zkCli.sh命令查看zookeeper上的配置文件:

./zkCli.sh 

退出:

quit

使用以下命令连接指定的zookeeper服务:

./zkCli.sh -server 192.168.0.245:2183

此时表明,配置文件已经上传到zookeeper上了

第八步:启动每个tomcat实例。要包装zookeeper集群是启动状态。

cd ..
cd ..
ll
vim start-tomcat-all.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

chmod u+x start-tomcat-all.sh
./start-tomcat-all.sh

看是否起来了

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

第九步:访问集群 http://192.168.0.245:8180/solr 发现比单机的多了个cloud

第十步:创建新的Collection进行分片处理。 直接在浏览器

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

第十一步:删除不用的Collection。

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

到此这篇关于在linux上搭建Solr集群的方法的文章就介绍到这了,更多相关linux搭建Solr集群内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

[!--infotagslink--]

相关文章

  • 在linux中使用包管理器安装node.js

    网上文章中,在linux下安装node.js都是使用源码编译,其实node的github上已经提供了各个系统下使用各自的包管理器(package manager)安装node.js的方法。...2015-03-15
  • Linux安装Pytorch1.8GPU(CUDA11.1)的实现

    这篇文章主要介绍了Linux安装Pytorch1.8GPU(CUDA11.1)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-25
  • Linux中grep命令详解

    grep命令是Linux系统中最重要的命令之一,功能是从文本文件或管道数据流中筛选匹配的行和数据,如果再配合正则表达式,功能十分强大,是Linux运维人员必备的命令,这篇文章主要介绍了Linux中grep详解,需要的朋友可以参考下...2023-02-15
  • 详解Linux环境变量配置全攻略

    这篇文章主要介绍了Linux环境变量配置全攻略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-03-31
  • Linux 下使用shell脚本定时维护数据库的案例

    这篇文章主要介绍了Linux 下使用shell脚本定时维护数据库,本文通过案例分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • linux服务器快速卸载安装node环境(简单上手)

    这篇文章主要介绍了linux服务器快速卸载安装node环境(简单上手),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-22
  • Linux下升级安装python3.8并配置pip及yum的教程

    这篇文章主要介绍了Linux下升级安装python3.8并配置pip及yum的教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-05-02
  • Linux下安装mysql-8.0.20的教程详解

    这篇文章主要介绍了Linux下安装mysql8.0.20的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-05-25
  • linux下源码安装mysql5.6.20教程

    这篇文章主要为大家详细介绍了linux下源码安装mysql5.6.20教程的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-01-15
  • Redis集群水平扩展、集群中添加以及删除节点的操作

    这篇文章主要介绍了Redis集群水平扩展、集群中添加以及删除节点的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-25
  • Linux zabbix agent部署及配置方法详解

    这篇文章主要介绍了Linux zabbix agent部署及配置方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-08-21
  • Linux下统计当前文件夹下的文件个数、目录个数

    这篇文章主要介绍了Linux下统计当前文件夹下的文件个数、目录个数,本文使用ls命令配合管理、grep命令实现统计需求,需要的朋友可以参考下...2020-07-11
  • Linux环境下nginx搭建简易图片服务器

    这篇文章主要介绍了Linux环境下nginx搭建简易图片服务器,需要的朋友可以参考下...2016-01-27
  • Linux CentOS MySQL数据库安装配置教程

    这篇文章主要为大家详细介绍了Linux CentOS MySQL数据库的安装配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-05-19
  • linux网络配置工具的使用

    这篇文章主要介绍了linux网络配置工具的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-03-31
  • Linux下semop等待信号时出现Interrupted System Call错误(EINTR)解决方法

    本篇文章是对在Linux下semop等待信号时出现Interrupted System Call错误(EINTR)的解决方法进行了详细的分析介绍,需要的朋友参考下...2020-04-25
  • Linux下常用压缩格式的压缩与解压方法详解

    这篇文章主要介绍了Linux下常用压缩格式的压缩与解压方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • Fedora14 Linux系统安装Golang开发环境笔记

    这篇文章主要介绍了Fedora14 Linux系统安装Golang开发环境笔记,本文讲解了2种安装方法,需要的朋友可以参考下...2020-05-01
  • linux上mysql安装详细教程

    这篇文章主要为大家详细介绍了linux上mysql安装详细教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-02-08
  • linux服务器开机启动oracle的设置方法

    这篇文章主要介绍了linux服务器下oracle开机自启动设置,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11