注:欢迎大家转载,非商业用途请在醒目位置注明本文链接和作者名dijia478,商业用途请联系本人dijia478@163.com。

之前步骤:Solr集群搭建详细教程(一)

三、solr集群搭建

注意,在搭建solr集群前,建议最好有一个solr服务是已经搭建好的,可以简化大量重复的配置操作。

单机solr服务搭建过程参看我的这篇文章:

Solr服务在Linux上的搭建详细教程

这个单机solr服务在solr集群搭建第二步和第三步里需要,搭建好一个solr服务后,就可以进行集群搭建了。

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

上传解压步骤省略,这是我解压好的

复制tomcat到之前搭建zookeeper集群第四步时,创建的/usr/local/solr-cloud目录里,复制4个

去solr-cloud目录,发现已经复制好了4个tomcat目录

在tomcat目录下的conf里的server.xml,修改每个tomcat的端口号,这里只演示第一个目录的,另外三个都要改,端口要互不冲突

用/port命令搜索port字符串,按n搜索下一个,有三个地方要改,依次更改为

其他三个tomcat目录里的server.xml配置的端口按照234的顺序全改了啊,具体过程这里我就不截图了。

一共要改四个文件,每个文件里改三个地方,这12个端口号要互不冲突

第二步:把单机版的solr工程复制到集群中的tomcat中

在搭建好的单机solr服务里(这里是另一篇教程,上面说过了),复制solr工程到第一步的4个tomcat目录里,一共是复制4份

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

一样在之前搭建的单机solr服务里,把solrhome复制4份出来到solr-cloud目录里

现在solr-cloud目录里是有这些目录,检查一下有没有复制错地方的:

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

之前搭建单机版solr服务的时候没有动过solrhome里的这个文件,现在搭建集群了,需要进行修改

需要修改4个solr.xml,我这里还是只演示第一个,另外三个目录里的类比着改,一样的,就是1234的顺序

找到这个地方,第一个红框代表当前节点的ip地址,就是你部署这个solrhome01,tomcat01集群节点的服务器ip,实际工作中就是会部署4个服务器,一个服务器是一个节点,部署一个solr服务

第二个红框代表当前solr服务实例的端口号,就是所在的tomcat的端口号,就是第一步在tomcat01的server.xml里配置的8180

我的配置完后是这样的

其他三个照着改啊,由于我是在一台虚拟机搭建的四个实例,所以肯定四个实例的ip是一样的,但端口分别是8180,8280,8380,8480

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

修改这个文件,和之前单机版的solr配置是一样的

要注意的是,tomcat01这里的solr服务,是上面第二步复制过来的对吧,是我之前用solr7搭建的单机solr服务,里面的配置和solr4不太一样,具体还是去文章最上面看我提供的单机solr服务搭建教程链接

找到这个,这里是我之前搭建单机solr服务时,配置的solrhome路径

现在改成集群的solrhome01目录,使他们关联起来

其他三个tomcat里的web.xml都对应着一改,solrhome02,03,04

第六步:让zookeeper统一管理配置文件。需要把/conf目录上传到zookeeper

现在我们每一个solr都有了自己的solrhome,现在我们要让每一个solr实例的配置文件都一样,这个配置文件需要集中管理,这个时候我们使用zookeeper来统一管理配置文件。所以要将配置文件上传到zookeeper中。那么上传哪些配置文件呢?

这里注意下managed-schema文件,网上有很多低版本solr,会提到一个collection1/conf下的schema.xml,但是并没有找到。好像是从5.0版本开始不使用schema.xml的,这俩其实内容都一样,搞不懂为啥要换个名字,而且内容格式是xml,但是文件名却没有.xml的后辍,这里直接上传整个conf目录就行。

知道了要上传什么,那么怎么上传呢?打开最早solr解压出来的原始文件(如果删了那就重新上传解压吧)

在这个目录下有个脚本文件,执行这个脚本就可以将配置文件上传到zookeeper了,有点难找,我是用find命令给搜出来的。不过我这里给出了pwd路径

要注意,在执行脚本上传配置文件前,必须先去启动zookeeper集群

然后回来执行脚本

这里脚本的执行命令有点长,主要是参数多,建议复制出来改好后再粘贴上去

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

我解释下各个参数的含义:

红色框代表zookeeper集群的ip和端口号列表(搭建zookeeper集群的时候配置过的)

绿色框代表要执行的是上传配置文件操作

黄色框代表的是要上传的配置文件目录(低版本不太一样,具体以那两个主要的配置文件所在目录为准,不知到在哪就find命令搜吧)

紫色框代表的是你给上传的配置起的名字,可以改

现在上传完了,那么我们怎么确定是否上传成功呢?去zookeeper集群的一个目录找到bin里zookeeper的客户端脚本

运行后,里面会出现一大堆内容,如果你不指定参数,他会默认访问localhost:2181

在最下面执行这个命令,查看在根目录下有什么,发现一个configs

再看它里面有什么?哈!

这就是我们刚才上传的配置了,名字一样的,代表上传成功了

然后用quit命令退出

如果你需要修改配置的话,只用在刚才那个conf目录里改好,改好后再上传一次就行了,就会覆盖原来的配置文件

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

现在上传好配置文件了,可是solr和zookeeper还没有建立任何关系,他们也不知道对方在哪里,这个时候需要修改4个tomcat的配置文件,这里只演示tomcat01,其他三个完全相同照着改

打开catalina.sh文件,加一个JAVA_OPTS这个参数,初始化这个值完了会传给solr,注意不是在这个截图这里修改啊

用/JAVA_OPTS搜索红色框框里的这句话(因为低版本加的位置长的不太一样,但这句话的例子是不变的),在这句话下面的位置加(注意位置啊,不要弄错了):

加上JAVA_OPTS的值(zookeeper集群的ip列表):

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

然后把其他三个tomcat也一改,改的位置和内容是一样的,不用变

这样每个solr实例就通过这个参数和zookeeper集群建立了联系,solr会将自己的状态发送给zookeeper,比如ip地址啊,端口号啊,zookeeper就可以连接到solr了,建立了通信关系

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

现在需要启动每个tomcat,当然了,这个和启动zookeeper集群一样,要一个一个进去启动,太麻烦了,还是写个批处理脚本来运行

/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

保存,退出

发现没有运行权限,添加权限

然后运行脚本,等等啊,tomcat集群启动比较慢

如果你想看启动起来没,可以复制一个会话窗口(我用的xshell5),去看看tomcat的日志信息(相当于看控制台打印信息)

用这个命令查看,我这就查看一个,应该已经启动好了

这里说个小知识点,tomcat8开始,默认启动的是NIO模式,7默认启动的是BIO模式,还可以通过配置设置APR模式启动,至于APR,NIO和BIO的区别,是和tomcat并发性能有关的,高并发的系统应该将tomcat的模式设置成APR模式,会大幅度的提高服务器的处理和响应性能。感兴趣的可以自己百度下。当然这个不用在意,跟本文集群搭建没啥关系,就是想到了说一下。

第九步:访问集群

然后用自己的电脑访问下咱们的集群吧,之前单机版是没有红框框出来的两个东西的,出现这个就是OK了

我这里还没创建collections,所以啥都没有:

注意下访问地址的输入,要写全。访问地址写成这样会404

第十步:创建新的Collection进行分片处理

点击页面的Collections按钮,然后就能添加了(高版本的solr才有,低版本的需要通过地址栏传递参数去设置,比较麻烦)

我这里选择的是名字叫mycollection1,用自己上传的myconf配置文件,有2片shard,每个shard有2个备份节点一主一备

然后回去看下,这样solr集群就搭建ok了!

第十一步:删除不用的Collection或core

删除collection,点这里,然后输入你要删除的collection名称就行

删除core在右边,完了如果要添加下面有add replica(如果工作中你的哪个备份机挂了,就这样删掉挂的服务器,再添加一个好的就行,当然了,在这里添加前,肯定是需要在服务器上部署好solr服务,然后连接zookeeper集群才行的)

Solr集群搭建详细教程(二)的更多相关文章

  1. Solr集群搭建详细教程(一)

    一.Solr集群的系统架构 注:欢迎大家转载,非商业用途请在醒目位置注明本文链接和作者名dijia478,商业用途请联系本人dijia478@163.com. SolrCloud(solr 云)是So ...

  2. hadoop集群搭建详细教程

    本文针对hadoop集群的搭建过程给予一个详细的介绍. 参考视频教程:https://www.bilibili.com/video/BV1tz4y127hX?p=1&share_medium= ...

  3. centos solr 集群搭建

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

  4. kubernetes(K8S)快速安装与配置集群搭建图文教程

    kubernetes(K8S)快速安装与配置集群搭建图文教程 作者: admin 分类: K8S 发布时间: 2018-09-16 12:20 Kubernetes是什么? 首先,它是一个全新的基于容 ...

  5. Solr集群搭建

    SolrCloud需要solr基于zookeeper部署,zookeeper是一个集群管理软件,由于SolrCloud需要由多台服务器组成.由zookeeper来进行协调管理.Zookeeper是一个 ...

  6. (转)淘淘商城系列——Solr集群搭建

    http://blog.csdn.net/yerenyuan_pku/article/details/72957201 我们之前做的搜索使用的是Solr的单机版来实现的,正是由于我们现在商品数据量不多 ...

  7. solr集群搭建(复制)

    Solr集群的搭建以及使用(内涵zookeeper集群的搭建指南) 1   什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引 ...

  8. 搜索服务Solr集群搭建 使用ZooKeeper作为代理层

    上篇文章搭建了zookeeper集群 那好,今天就可以搭建solr搜服服务的集群了,这个和redis 集群不同,是需要zk管理的,作为一个代理层 安装四个tomcat,修改其端口号不能冲突.8080~ ...

  9. centos下hadoop2.6.0集群搭建详细过程

    一 .centos集群环境配置 1.创建一个namenode节点,5个datanode节点 主机名 IP namenodezsw 192.168.129.158 datanode1zsw 192.16 ...

随机推荐

  1. 原码、反码、补码的正(nao)确(can)打开方式

    我们知道日常生活中使用的数分为整数和实数,整数的小数点固定在数的最右边,可以省略不写,而实数的小数点则不固定.在计算机中只能识别和表示“0”和“1”,而无法识别小数点,因此要想使得计算机能够处理日常使 ...

  2. flex布局元素操作详情

    之前布局一直用的是 position,float之类的,趁着国庆学习一下 flex 布局 父元素: flex-direction: row row-reverse column column-reve ...

  3. [树莓派(raspberry pi)] 01、在linux环境下给树莓派安装系统及入门各种资料

    1.预准备 进入帮助页面https://www.raspberrypi.org/help/,可以直接看到GET START WITH PASPBERRY PI,点击进入: 接下来会引导你检查配件是否齐 ...

  4. 基于HTML5 Canvas 点击添加 2D 3D 机柜模型

    今天又返回好好地消化了一下我们的数据容器 DataModel,这里给新手做一个典型的数据模型事件处理的例子作为参考.这个例子看起来很简单,实际上结合了数据模型中非常重要的三个事件处理的部分:属性变化事 ...

  5. 用lua+redis实现一个简单的计数器功能 (一)

    首先安装环境 依赖环境有 luajit http://luajit.org ngx_devel_kit https://github.com/simpl/ngx_devel_kit echo-ngin ...

  6. 模板文件引入css样式文件

    引用路径问题:相对路径和绝对路径 相对路径:相对路口文件index.php设置 绝对路径:从虚拟主机站点目录开始设置 css样式文件引入图片,路径的设置 相对地址:相对css文件本身设置 ①模板文件 ...

  7. Java编程学习技巧和方法总结

    干货:必须要有反馈,不断调整,多读书,多些笔记. 解释:不练习你以为你能掌握?笑话,只有自己根据一个个小目标不断的敲,运行,给予你反馈,这样才会真的进步. 纸上谈Java,是永远停止在口.   关于笔 ...

  8. mysql最佳优化经验

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...

  9. Centos7 下安装Docke

    为什么 要用centos7呢. 现在哪个企业用的是centos7呀.不都是老版本么. 对咱们是新技术.所以只有新系统才可以用.因为docker要求服务CentOS6以上,kernel 版本必须2.6. ...

  10. 项目实战8—tomcat企业级Web应用服务器配置与会话保持

    tomcat企业级Web应用服务器配置与实战 环境背景:公司业务经过长期发展,有了很大突破,已经实现盈利,现公司要求加强技术架构应用功能和安全性以及开始向企业应用.移动APP等领域延伸,此时原来开发w ...