Solr集群更新配置的方式
solr集群中配置文件是经常更新的,频率最高的也就是schema.xml和solrconfig.xml这两个配置文件了,对于更新配置文件之前,我们先了解一下集群项目结构
由于在集群模式下,solrconfig.xml和schema.xml等配置文件都由Zookeeper集群管理,所以本地项目中只保留单一shard分片,各个collections分片保存位置是solr根目录下的server/solr/下,这个目录下有一个solr.xml文件,然后可以随便进入一个shard目录,可以看到只有一个data目录和一个core.properties文件,其中data目录存放solr备份的索引数据、core.properties文件通过vim编译可以看到这里面保存了shard序号,collections名称,核子节点的名称等等;另外官方文档也给出了对应的solrcloud本地的目录结构:
<solr-home-directory>/
solr.xml
core_name1/
core.properties
data/
core_name2/
core.properties
data/
这种结构和我们看到的是一样的
根据以上的目录结构,所以我们更新配置必须将配置文件更新到Zookeeper集群才可以正常生效,之前在网上查过一些资料,好多都是无效或者过时的,用过一段时间的一个方法就是,首先登录zookeeper,删除原有的schema.xml文件,然后进行配置的上传,上传完成后并不是立即生效的,所以要依次重启solr集群,首先说明这个方法是有效的,但是感觉太麻烦;另外由于生产过程中,随便重启solr服务就和重启服务器一样会造成一定的损失或者风险,所以这种方式明显不合理,尽管我们一直在使用;实际上最好的解决方法在官方文档已经给出了,这个需要我们自己慢慢探索,这里解决方法如下:
比如我们修改schema.xml配置文件之后,根本不用登录zookeeper删除原有文件,文件会自动覆盖,这里直接上传即可,命令如下:
./server/scripts/cloud-scripts/zkcli.sh -zkhost localhost: -cmd putfile /solr/configs/my_config/schema.xml ../configs/conf/schema.xml
参数putfile指定配置文件在zookeeper上的绝对路径,这里注意是配置的路径,不是collection的路径,二者名称不相同,后面跟的是修改之后本地schema.xml配置文件的路径
上传文件之后,我们通过solr admin管理界面都可以看到文件内容更新了,有2种方法可以查看到
但是我们去Update、Query时会出错,浏览Schema字段时没有更新,很明显配置没有生效;接下来就是最重要的一步,我们找到官方文档的collections API位置,可以看到有一个如下的API:
RELOAD这个API就是重新加载collection,不用重启solr,点击锚点可以看到具体使用解释如下:
可以看到解释的很清楚了,经过上一步更新覆盖了配置文件之后,我们只需要curl或者访问以下链接即可:
http://localhost:8983/solr/admin/collections?action=RELOAD&name=my_collection
访问之后,返回success,就重新加载核心成功了,全部正常使用
以上对于更新collections配置文件的这个过程其实也是解决问题的一个过程,首先我们应该充分理解我们使用的工具或者框架具体是做什么的或者说哪方面是有优势的,以及更深的实现机制和原理,多去对比,这样遇到问题的时候才可以做到知道这个问题而不会不知所措;另外有些地方不合理,是为什么不合理,会给生产带来哪些不好的影响以及潜在的风险;然后带着这些问题去搜索,建议查看官方文档,特别是大数据方面直接在搜索引擎搜索出来的结果大多是互相抄袭、过时、甚至错误的,这个时候就要充分的去品味官方文档中的解释,然后去自己思考,这样慢慢的自己的知识就健全了,慢慢的自己的内功也就提升了,相对来说也就慢慢的进入了高手的行列;对于初学者不知所措是很正常的,个人认为重要的还是坚持锲而不舍的研究,只有这样才可以跟随技术的进步
最后在学习工作中,总结一句话就是:永不放弃、知其然知其所以然、授人以鱼,不如授之以渔
Solr集群更新配置的方式的更多相关文章
- Solr 13 - 在URL地址栏中操作Solr集群 - 包括CRUD、别名、切割分片、更新配置
目录 1 创建操作 1.1 创建collection 1.2 创建core 1.3 创建操作中的参数 2 删除操作 3 加载操作 4 查看操作 5 操作集合别名(操作成功, 但未查出区别) 6 切割分 ...
- solr集群的理解和配置(待更新)
solr部署在tomcat下,solr集群依赖tomcat集群和zookeeper集群: zookeeper:1.对象注册和发放中心,实现异步调用. 2.配置中心.(solrConfig.xml,sc ...
- solrcloud(solr集群版)安装与配置
1 Solr集群 1.1 什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的 ...
- spring boot下JedisCluster方式连接Redis集群的配置
最近在使用springboot做项目,使用redis做缓存.在外网开发的时候redis服务器没有使用集群配置,所有就是用了RedisTemplate的方式进行连接redis服务器.但是项目代码挪到内网 ...
- Redis 单例、主从模式、sentinel 以及集群的配置方式及优缺点对比(转)
摘要: redis作为一种NoSql数据库,其提供了一种高效的缓存方案,本文则主要对其单例,主从模式,sentinel以及集群的配置方式进行说明,对比其优缺点,阐述redis作为一种缓存框架的高可用性 ...
- 在Linux上使用Nginx为Solr集群做负载均衡
在Linux上使用Nginx为Solr集群做负载均衡 在Linux上搭建solr集群时需要用到负载均衡,但测试环境下没有F5 Big-IP负载均衡交换机可以用,于是先后试了weblogic的proxy ...
- Solr集群常用的操作总结
之前搭建过SolrCloud和Solr单机版本,另外还有很多对Solr配置文件以及核心的操作,以下主要总结Solr集群中的常用操作,即在配置文件中正确设置ZK_HOST参数并且Zookeeper正确启 ...
- 搭建Solr集群的推荐方案
之前介绍过2篇SolrCloud的部署流程,第一个是使用安装脚本的方式进行抽取安装,启动比较方便,但是会创建多个目录,感觉比较乱:第二个是官方教程上提供的方法,使用比较简单,直接释放压缩包即可,并且启 ...
- Solr集群的搭建以及使用(内涵zookeeper集群的搭建指南)
1 什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时候 ...
随机推荐
- mysql主从复制(超简单)
mysql主从复制(超简单) 怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下: 1.主从服务器分别作以下操作: 1.1.版本一致 1.2.初始化表,并在后台启动mysql ...
- Oracle的DBMS_OUTPUT.PUT_LINE用法及脚本批处理方法
打印至控制台(无显示): BEGIN DBMS_OUTPUT.PUT_LINE('Hey look, ma!'); END; / 打印至控制台(有显示): SET SERVEROUTPUT ON BE ...
- \n\t\r代表什么意思
\t水平制表(跳到下一个tab位置)\r回车(将当前位置移到本行开头)\n换行(将当前位置移到下一行行开头)
- Linux服务器管理: 系统的进程管理pstree命令
pstree命令是查看进程树或者结构的命令 [root@localhost~]#pstree [选项] 需要注意的是不能将 -p和-u同时使用 如果同时使用前者生效后者无效但并不报错 选项: -p: ...
- mock.js-无需等待,让前端独立于后端进行开发
概述 首先啦,我不认识mock.js的作者,带着需求找到mock.js让我觉得很惊艳. 相对于其他同类的框架的实现,mock.js超出了我的意料. 基于 数据模板 生成模拟数据. 基于 HTML模板 ...
- tc 147 2 PeopleCircle(再见约瑟夫环)
SRM 147 2 600PeopleCircle Problem Statement There are numMales males and numFemales females arranged ...
- Mac Pro 安装 Homebrew 软件包管理工具
Linux系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两大发行版本都自带了解决方案,Red hat有 yum,Ubuntu有 apt-get. Mac os 中没有类似的东东,不过有第三方库支持 ...
- 支付安全基础 —— HTTPS的故事
本文主要讲述了HTTPS的基本原理,通过HTTPS握手过程.证书链.中间人攻击.CA机构等问题,详细解释了百付宝系统中用到的HTTPS安全知识,同时,介绍了如何查看www.baifubao.com的 ...
- FineUI第十七天---- 表格之扩展列
{ sb.AppendFormat(]); 1.通过表格的SelectedRowIndexArray获得选中行的索引号列表: 2.通过表格的DataKeys(二维数组)获取本行的数据 ...
- 几个简单实用的css效果
1.要使按钮具有3D效果,只要将它的左上部分边框设置为浅色,右下部分边框设置为深色即可. eg:#button { background: #888; border: 2px solid; borde ...