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集群更新配置的方式的更多相关文章

  1. Solr 13 - 在URL地址栏中操作Solr集群 - 包括CRUD、别名、切割分片、更新配置

    目录 1 创建操作 1.1 创建collection 1.2 创建core 1.3 创建操作中的参数 2 删除操作 3 加载操作 4 查看操作 5 操作集合别名(操作成功, 但未查出区别) 6 切割分 ...

  2. solr集群的理解和配置(待更新)

    solr部署在tomcat下,solr集群依赖tomcat集群和zookeeper集群: zookeeper:1.对象注册和发放中心,实现异步调用. 2.配置中心.(solrConfig.xml,sc ...

  3. solrcloud(solr集群版)安装与配置

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

  4. spring boot下JedisCluster方式连接Redis集群的配置

    最近在使用springboot做项目,使用redis做缓存.在外网开发的时候redis服务器没有使用集群配置,所有就是用了RedisTemplate的方式进行连接redis服务器.但是项目代码挪到内网 ...

  5. Redis 单例、主从模式、sentinel 以及集群的配置方式及优缺点对比(转)

    摘要: redis作为一种NoSql数据库,其提供了一种高效的缓存方案,本文则主要对其单例,主从模式,sentinel以及集群的配置方式进行说明,对比其优缺点,阐述redis作为一种缓存框架的高可用性 ...

  6. 在Linux上使用Nginx为Solr集群做负载均衡

    在Linux上使用Nginx为Solr集群做负载均衡 在Linux上搭建solr集群时需要用到负载均衡,但测试环境下没有F5 Big-IP负载均衡交换机可以用,于是先后试了weblogic的proxy ...

  7. Solr集群常用的操作总结

    之前搭建过SolrCloud和Solr单机版本,另外还有很多对Solr配置文件以及核心的操作,以下主要总结Solr集群中的常用操作,即在配置文件中正确设置ZK_HOST参数并且Zookeeper正确启 ...

  8. 搭建Solr集群的推荐方案

    之前介绍过2篇SolrCloud的部署流程,第一个是使用安装脚本的方式进行抽取安装,启动比较方便,但是会创建多个目录,感觉比较乱:第二个是官方教程上提供的方法,使用比较简单,直接释放压缩包即可,并且启 ...

  9. Solr集群的搭建以及使用(内涵zookeeper集群的搭建指南)

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

随机推荐

  1. centos yum 安装

    LINUX下YUM源配置 1.确保RHEL5中已经安装了yum [root@lvs-master ~]# rpm -qa |grep yumyum-metadata-parser-1.1.2-3.el ...

  2. jsf简介

    JSF实现了基于web的以下三个梦想 1.java程序员不必顾虑HTTP的细节,可以按照原本熟悉的事件驱动模型来设计后台系统,并通过一个能担保数据类型无误的数据传递接口将后台系统与前台界面结合在一起. ...

  3. emlog在nginx中添加rewrite规则

    rewrite ^/(post|record|sort|author|page)-([-]+)\.html$ /index.php?$=$; rewrite ^/tag-(.+)\.html$ /in ...

  4. C生成随机数,奇葩问题

    今天需要生成一个随机数,奇怪的问题发生了. #include <stdio.h> #include <stdlib.h> #include <time.h> #de ...

  5. .NET逻辑分层架构总结

    一.基础知识准备: 1.层的原则: (1)每一层以接口方式供上层调用. (2)上层只能调用下层. (3)依赖分为松散交互和严格交互两种. 2.业务逻辑分类: (1)应用逻辑. (2)领域逻辑. 3.采 ...

  6. [百度地图] MultiZMap 修改使用;

    MultiZMap修改说明 MultiZMap 是基于百度地图API 封装的一些常用功能类库:主要以prototype方式实现:并且实现了一些辅助的功能,比如添加 Marker 功能,事件管理等: 以 ...

  7. 黑客攻防技术宝典Web实战篇(二)工具篇

    扫描工具.中间攻击工具.加密解密工具等. 1 TM Thread Module 2 burpsuite 代理.中间攻击.repeatur.spider.暴力破解(intrude).加密.解密.扫描器 ...

  8. 通过google chrome操作JavaScript中Console

    紧接着有关上一个文章的!function................. 前端开发人员一定会用到你的开发者工具中的Console控制台.通常Console用于调试程序,日志输出,打断点等功能.比如我 ...

  9. 装X之写博客

    博客作用: 为了温习以前的知识,记录下 前几天和一个前辈聊天,说起看书总是前面学後面忘点的事情· 写个博客试试?

  10. LYDSY模拟赛day3 平均数

    [ 问题描述]有一天, 小 A 得到了一个长度为 n 的序列.他把这个序列的所有连续子序列都列了出来, 并对每一个子序列都求了其平均值, 然后他把这些平均值写在纸上, 并对它们进行排序,最后他报出了第 ...