设为首页 收藏本站
查看: 817|回复: 0

[经验分享] Solr 4.6 | Setting Up an External ZooKeeper Ensemble | upgrade solr to Solr4.6

[复制链接]

尚未签到

发表于 2015-9-6 11:49:52 | 显示全部楼层 |阅读模式
  4.1----->4.6
  Solr从4.1到4.6还是有不少改变的。。。
  一、solr.xml


  • 在4.3版本开始Solr维护这两套不同格式的solr.xml,旧的遗留格式和自动发现模式,5.0以后会废除遗留格式而只支持自动发现;简单的说自动发现就是把原有格式里对core的定义放到了core.properties里
  • 在4.5版本开始Solr支持把solr.xml交给ZooKeeper维护
  
  关于solr.xml以及core.properties的格式参照https://cwiki.apache.org/confluence/display/solr/Solr+Cores+and+solr.xml
  https://cwiki.apache.org/confluence/display/solr/Format+of+solr.xml
  http://wiki.apache.org/solr/Solr.xml%204.4%20and%20beyond
  "Allow solr.xml to be stored in ZooKeeper" refer to https://issues.apache.org/jira/browse/SOLR-4718
  
  https://cwiki.apache.org/confluence/display/solr/Command+Line+Utilities#CommandLineUtilities-Scripts
  http://blog.iyunv.com/zhyh1986/article/details/9856817
  
  对于一些配置参数的理解
  host/hostContext/hostPort和以前一样,如果设置不对可能在Cloud页面的链接不能进入
  可以把zkHost配置到这里吗
  
  Errors
  1.about sharedLib
  config : <lib dir="./lib" />
  lib目录位于$SOLR_HOME下
  WARN [org.apache.solr.core.SolrResourceLoader] - <Can't find (or read) directory to add to classloader: ./lib (resolved as: /home/andy/work/solr_home/solr1/collection_user/./lib).>
  ERROR :logs like

ERROR - 2013-05-22 22:41:16.939; org.apache.solr.common.SolrException; null:java.lang.NoClassDefFoundError: org/apache/lucene/analysis/icu/segmentation/ICUTokenizer
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2413)
at java.lang.Class.getConstructor0(Class.java:2723)
at java.lang.Class.getConstructor(Class.java:1676)
at org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:550)
at org.apache.solr.schema.FieldTypePluginLoader$2.create(FieldTypePluginLoader.java:342)
at org.apache.solr.schema.FieldTypePluginLoader$2.create(FieldTypePluginLoader.java:335)
at org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:151)
at org.apache.solr.schema.FieldTypePluginLoader.readAnalyzer(FieldTypePluginLoader.java:362)
at org.apache.solr.schema.FieldTypePluginLoader.create(FieldTypePluginLoader.java:86)
at org.apache.solr.schema.FieldTypePluginLoader.create(FieldTypePluginLoader.java:43)
at org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:151)
at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:467)
at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:164)
at org.apache.solr.schema.IndexSchemaFactory.create(IndexSchemaFactory.java:55)
at org.apache.solr.schema.IndexSchemaFactory.buildIndexSchema(IndexSchemaFactory.java:69)
at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:727)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:765)
at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:426)
at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:421)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.ClassNotFoundException: org.apache.lucene.analysis.icu.segmentation.ICUTokenizer
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:789)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
  对于WARN我把配置改为<lib dir="../lib" /> ,这个警告就没有了,这说明:在以前的版本(至少是4.1)中,当前目录是指$SOLR_HOME下;在新版本中,当前目录是指$SOLR_HOME/COLLECTION_CURRENT下
  对于ERROR我花了不少时间,各种方法都试过都不行,后来仔细阅读日志文件发现发现不同于版本的特殊情况,对$SOLR_HOME/lib下的jar包被CLASSLOADER加载了3次(我在$SOLR_HOME下只有一个COLLECTION),那基本可以确定是这个原因引起的,但是如何不让solr重复加载呢?后来在jira上发现别人提过https://issues.apache.org/jira/browse/SOLR-4852,在新的版本中 如果sharedLib为$SOLR_HOME/lib,那么必须在你的solr.xml里去掉这个配置项,并且删掉所有其他地方对$SOLR_HOME/lib的指向,因为新版solr不需指定自动扫描$SOLR_HOME/lib下的jar包,如果你指定几次就会多加载几次,那么就会导致当前CLASSLOADER里的.class可能不是你所需要的。其实这样有些费解,特别是当你做Solr升级的时候,希望以后有所改进
  
  总结:
  新版本对xml的配置文件解析更严格,以前schema.xml中有小错误可能不会报错,现在会导致collection启动失败
  新版本Solr索引文件名里还含有*_Lucene41_* 开始以为有问题,仔细看LOG发现 codec=Lucene46
  Solr4.4开始支持把索引存到HDFS(https://cwiki.apache.org/confluence/display/solr/Running+Solr+on+HDFS)
  
  
  http://www.tuicool.com/articles/n63y6r

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-110102-1-1.html 上篇帖子: ZooKeeper系列补充Paxos 下篇帖子: hbase、zookeeper及hadoop部署
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表