solr(六): 集群
前言
随着用户的增多,空间和并发量越来越多,会导致一台solr服务器干不过了。这时候,就需要将solr集群以下。
集群架构

由多台服务器共同完成索引和搜索任务
实现的思路是将索引数据进行shard(分片) 拆分,每个分片由多台的服务器共同完成。
当一个索引或搜索请求过来时会分别从不同的shard的服务器中操作索引。
solrCloud需要 solr基于zookeeper部署,zookeeper是一个集群管理软件,solrCloud需要由多台服务器组成。由zookeeper来进行协调管理 ,多个分片相加起来才是一个完成的索引库
zookeeper的集群:
Solr集群搭建
一. 拷贝tomcat和solrhome
新建文件夹 solr-cloud。将之前solr单机版中的tomcat,solrhome拷贝到solr-cloud文件夹中。

二. tomcat修改
1.端口修改
在solr-cloud文件夹中, 执行以下命令:
vim ./tomcat1/conf/server.xml
查询并修改其中的三个port:
1).

2).

3).

其他的tomcat分别修改port的第二个数值为相应数值即可,
如:8280/8209/8205,8380/8309/8305,8480/8409/8405。
2. web.xml 修改
分别修改 webapps/solr/WEB-INF/web.xml文件 - 将solrhome和solr关联起来
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/usr/java/solr-cloud/solrhome1</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
tomcat2 -> /usr/java/solr-cloud/solrhome2
tomcat3 -> /usr/java/solr-cloud/solrhome3
tomcat4 -> /usr/java/solr-cloud/solrhome4
3. catalina.sh修改
通过修改这里的JAVA_OPTS将tomcat和zookeeper关联起来。
分别修改tomcat/bin/catalina.sh文件
加入:
JAVA_OPTS="-DzkHost=192.168.0.102:2181,192.168.0.102:2182,192.168.0.102:2183"

三. solrhome修改
1. solrhome1下面的solr.xml文件修改

host为对应tomcat1部署的电脑ip,hostport为tomcat1修改后的端口号。
solrhome2(192.168.0.102, 8280)
solrhome3(192.168.0.102, 8380)
solrhome4(192.168.0.102, 8480)
2. 上传solrhome/core1/conf目录
将conf目录上传到zookeeper中,由zookeeper统一管理配置文件。只需要上传任意一个solrhome中的配置就可以了。
切换到之前solr解压的目录中:/usr/java/solr/solr-6.6.2/server/scripts/cloud-scripts
执行以下命令:
./zkcli.sh -zkhost 192.168.0.102:2181,192.168.0.102:2182,192.168.0.102:2183 -cmd upconfig -confdir /usr/java/solr-cloud/solrhome1/core1/conf -confname myconf
执行完此命令后,可以进入zookeeper目录中验证一下是否成功。
在zookeeper1/bin目录下执行 ./zkCli.sh 命令查看zookeeper上的配置文件信息

四. 启动tomcat
新建一个文件,来一键启动tomcat。
vim start-tomcat.sh

修改文件权限
chmod u+x start-tomcat.sh
然后执行 ./start-tomcat.sh 命令。

从这里并不能直观看到是否真的起来了。可以通过查看日志的方式,或者通过访问的方式。
tail -f /usr/java/solr-cloud/tomcat1/logs/catalina.out
OK, 到这里,终于能看到页面了。在浏览器中打开:http://localhost:8180/solr/index.html#/

菜单上多出来了一个cloud目录。
五.分片
http://127.0.0.1:8180/solr/admin/collections?action=CREATE&name=core2&numShards=2&replicationFactor=2
在浏览器中直接访问以上地址.
如果报 org.apache.solr.handler.dataimport.DataImportHandler 错误, 则将 dataimport的jar包拷贝一份到tomcat/webapps/solr/WEB-INF/lib 中去.

这时候, 再刷新solr/index.html页面看看

你会发现,在core1下面,又多出一个core, 且是分片的. 以前只有一个主solr, 现在有两个主solr了.
core1现在我们不需要了, 可以删除掉. 那怎么删呢?
http://127.0.0.1:8180/solr/admin/collections?action=DELETE&name=core1
也是通过浏览器直接访问的方式.
再来看看index.html页面

core1被删除了.
solr(六): 集群的更多相关文章
- Solr主从集群配置简要说明
关于solr的集群主要分为主从和SolrCloud两种.主从,比较适合以读为主的场景.SolrCloud适合数据量大,时不时会有更新的情形.那么solr的主从配置很简单.在solrconfig.xml ...
- Solr的集群搭建(索引库)
Solr的集群的搭建 Solr集群原理 SolrCloud概念以及结构 概念: SolrCloud(Solr云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用Solr ...
- 分享知识-快乐自己:solr 伪集群搭建
前言:在你搭建集群之前先去搭建一个单机版的 跳转 Solr 集群构建图: 1):部署(4个)Tomcat 下载 更改每一个 tomcat 启动端口号: [root@VMSolr tomcat_clus ...
- Centos7:solr伪集群(SolrCloud)搭建
JDK,tocmat环境搭建 zookeeper集群安装 解压缩zookeeper的压缩包 创建data目录 复制zoo_sample.cfg为zoo.cfg 修改confg/zoo.cfg中 dat ...
- redis学习六 集群的原理(转载)
转载自 http://shift-alt-ctrl.iteye.com/blog/2285470 一.Redis Cluster主要特性和设计 集群目标 1)高性能和线性扩展,最大可以支撑到1 ...
- 二十六. 集群及LVS简介 LVS-NAT集群 LVS-DR集群
方案:安装ipvsadm软件包,关于ipvsadm的用法可以参考man ipvsadm资料. 常用ipvsadm命令语法格式如表-1及表-2所示. 1.ipvsadm命令用法(proxy) 1.1 创 ...
- Solr配置集群
1.主机SolrConfig.xml <requestHandler name="/replication" class="solr.ReplicationHand ...
- solr+zookeeper集群配置
将solr配置文件交给zookeeper进行管理 ./zkcli.sh -zkhost node01:2181,node02:2181,node03:2181 -cmd upconfig -confd ...
- Solr集群、KI分词、项目实战
Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展并对查询性能进行了优化,并且提供了一个完善 ...
随机推荐
- arm linux和windows 使用tftp传文件
一.在windows 安装tftp客户端 链接:https://pan.baidu.com/s/1sxNciX337DObVmGJmCxICw 提取码:hzvj 在客户端新建一个tftp文件夹 二.关 ...
- android6.0以上权限动态申请,有视频链接可以看效果。
android6.0以上某些权限需要动态申请,虽然现在大多的手机系统版本在6.0,但是升级到6.0及以上是迟早的事,所以如何能够更好的控制动态申请权限时能有好的提示用户,及给用户带去更好的体验,是需要 ...
- HTML之 一 标签
一 ,标签分类: 1.普通标签: <h1> hello </h1> hello 2.自闭和标签 <hr/> 二,书写html注意事项 1.标签不能交叉嵌套 2. 标 ...
- HDU 4609 3-idiots (组合数学 + FFT)
题意:给定 n 条边,问随机选出 3 条边,能组成三角形的概率是多少. 析:答案很明显就是 能组成三角形的种数 / (C(n, 3)).现在的问题是怎么求能组成三角形的种数. 这个博客说的非常清楚了 ...
- SSRF
SSRF 关于SSRF SSRF(Server-Side Request Forgery:服务器端请求伪造),攻击者通过伪造服务器端发起的请求,获取客户端所不能得到的数据.一般情况下,SSRF攻击的目 ...
- springboot的拦截器Interceptor的性质
Interceptor在springboot2.x版本的快速入门 实现HandlerInterceptor的接口,并重载它的三个方法:preHandle.postHandle.afterComplet ...
- SaaS应用十大关键NFR - 第2部分
SaaS应用十大关键NFR - 第2部分 在继续上一篇关于SaaS应用的十大关键NFR的博客之后,我们来看看接下来的5个对SaaS解决方案架构产生深刻影响的关键NFR. SaaS应用的关键NFR 多租 ...
- python基础自学 第四天
break和continue break:某一条件满足,退出循环,不在执行后续重复代码 continue:某一条件满足时,不执行后续重复的代码 注意:在循环中,如果使用continue这个关键字,使用 ...
- 关于oracle数据库的小知识
--查询语句:select 列名/通配符/列别名/表达式 from 表名 (修饰/限制语句)select * from tab;select tname from tab;--指定的列select t ...
- Python之旅Day13 JavaScript与DOM部分
JavaScript部分 JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应的代码,浏览器就可以解释并做出相应的 ...
