热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

solrcloud异常与处理

启动solrcloud,启动到一半发现抛出这样的异常:ZkController.java第1087行代码"CouldnotfindconfigNameforcollection
  1. 启动solr cloud ,启动到一半发现抛出这样的异常:ZkController.java第1087行代码
    "Could not find configName for collection " + collection + " found:" + configNames

           原因在于solr cloud 集群在启动的过程中需要加载zookeeper中的 collections core状态配置信息,因为在zk中还没有初始化,所以启动的时候发现配置信息是空的,solr连续尝试四次之后就会抛一个ZooKeeperException异常。

           解决办法是,在启动命令行中添加一个
    -Dcollection.cOnfigName=clusterconf     -Dbootstrap_cOnfdir=./solr/collection1/conf   的配置项,solr在启动的时候就会自动将目标配置文件夹下的schema solrconfig 等配置信息同步到zookeeper节点上。完整的solr启动命令如下:

    Python代码  收藏代码
    1. java -Dbootstrap_cOnfdir=./solr/collection1/conf -Dcollection.  
    2. cOnfigName=twoShardsTwoReplicasConf -DnumShards=2  
    3. -DzkHost=192.168.0.10:9983/baisui  -jar start.jar  
     
  2. 当应用启动好之后,solr core中已经有一份索引了,然后在solr管理页面(http://localhost/solr/#/collection1/query)上执行查询操作,抛了以下这个异常:C代码  收藏代码
    1. 2013-5-2 10:22:04 org.apache.solr.common.SolrException log  
    2. 严重: org.apache.solr.common.SolrException: no servers hosting shard:  
    3.         at org.apache.solr.handler.component.HttpShardHandler$1.call(HttpShardHandler.java:162)  
    4.         at org.apache.solr.handler.component.HttpShardHandler$1.call(HttpShardHandler.java:135)  
    5.         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)  
    6.         at java.util.concurrent.FutureTask.run(FutureTask.java:138)  
    7.         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)  
    8.         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)  
    9.         at java.util.concurrent.FutureTask.run(FutureTask.java:138)  
    10.         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)  
    11.         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)  
    12.         at java.lang.Thread.run(Thread.java:619)  
             首先需要解决的一个问题是solr启动使用的端口号是8983,但是现在运行的solr core所在tomcat容器中设定的solr端口号是80端口,当调用solr的shared查询时候,仍然会瓶装request url的时候用8983端口来拼装,所以在在shared查询的时候会发生服务不可用的错误,所以要在启动命令的参数中添加一个参数-Djetty.port=80, 说明一下,虽然是在tomcat容器中这个参数仍然是有效的。                     

             接下来再说如何解决上面那个异常,其实很简单,因为在初始化的时候设置了sharedNumber的数量为2,刚开始只启动了一台服务器,在查询的时候,在zookeeper中livenode节点中只有一台,还没有满足solrcloud最小shared为2的要求。所以在进行查询的时候抛出这个异常很正常,解决办法是再启动一个solr节点,启动命令是java -DzkHost=10.232.15.46:2181,10.232.36.130:2181/baisui -Djetty.port=80  -jar start.jar, 应用启动的时候自动会到zookeeper中的节点配置信息。第二个solr节点正常启动后,可以正常进行查询操作了。


            需要说明的是一个应用在初始化之后,sharedNumber数目就不能变了,但是 一个share中的副本是可以添加或者减少的。

  3. 删除cluster中的 Collection
              curl 'http://localhost:8983/solr/admin/collections?action=DELETE&name=userscollection'  试验了一下果然是可以删除的,但是在zookeepr的节点上查看还是刚刚生成的schema,solrconfig等配置文件还是存在的没有被删除掉。但是本地文件夹collection中的config 目录被删除了,重新启动solr container会出错。

               类似这样的维护solr应用的命令使用起来倒是挺方便的,但是感觉如果是线上应用的话这样调用起来也非常危险,一个不小心就把一个collection给删除了,那就摊上大事儿了


推荐阅读
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • Spring框架中的面向切面编程(AOP)技术详解
    面向切面编程(AOP)是Spring框架中的关键技术之一,它通过将横切关注点从业务逻辑中分离出来,实现了代码的模块化和重用。AOP的核心思想是将程序运行过程中需要多次处理的功能(如日志记录、事务管理等)封装成独立的模块,即切面,并在特定的连接点(如方法调用)动态地应用这些切面。这种方式不仅提高了代码的可维护性和可读性,还简化了业务逻辑的实现。Spring AOP利用代理机制,在不修改原有代码的基础上,实现了对目标对象的增强。 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 本文将带你快速了解 SpringMVC 框架的基本使用方法,通过实现一个简单的 Controller 并在浏览器中访问,展示 SpringMVC 的强大与简便。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 本教程详细介绍了如何使用 Spring Boot 创建一个简单的 Hello World 应用程序。适合初学者快速上手。 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 本文详细探讨了几种常用的Java后端开发框架组合及其具体应用场景。通过对比分析Spring Boot、MyBatis、Hibernate等框架的特点和优势,结合实际项目需求,为开发者提供了选择合适框架组合的参考依据。同时,文章还介绍了这些框架在微服务架构中的应用,帮助读者更好地理解和运用这些技术。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
author-avatar
phpxiaoxuesheng
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有