solr报错:ERROR org.apache.solr.cloud.Overseer – could not read the data org.apache.zookeeper.KeeperEx

一、问题描述

基于CDH5.7.0的solr构建solr cloud

1.准备配置solr-4.10.3-cdh5.7.0/zookeeper-3.4.5-cdh5.7.0/apache-tomcat-8.5.12/jdk1.7

2.配置好zookeeper集群后,开启tomcat1-4,发现tomcat1自动关闭,无法连接,查看日志报错:

tail -f solrcloud/tomcat1/logs/catalina.out

01-May-2019 09:08:46.041 WARNING [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [solr] appears to have started a thread named [localhost-startStop-1-SendThread(hadoop01:2182)] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
 java.lang.Thread.sleep(Native Method)
 org.apache.zookeeper.ClientCnxnSocketNIO.cleanup(ClientCnxnSocketNIO.java:219)
 org.apache.zookeeper.ClientCnxn$SendThread.cleanup(ClientCnxn.java:1185)
 org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1122)
12088 [OverseerExitThread] ERROR org.apache.solr.cloud.Overseer  – could not read the data
org.apache.zookeeper.KeeperException$SessionExpiredException: KeeperErrorCode = Session expired for /overseer_elect/leader
        at org.apache.zookeeper.KeeperException.create(KeeperException.java:127)
        at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
        at org.apache.zookeeper.ZooKeeper.getData(ZooKeeper.java:1151)
        at org.apache.solr.common.cloud.SolrZkClient$7.execute(SolrZkClient.java:349)
        at org.apache.solr.common.cloud.SolrZkClient$7.execute(SolrZkClient.java:346)
        at org.apache.solr.common.cloud.ZkCmdExecutor.retryOperation(ZkCmdExecutor.java:61)
        at org.apache.solr.common.cloud.SolrZkClient.getData(SolrZkClient.java:346)
        at org.apache.solr.cloud.Overseer$ClusterStateUpdater.checkIfIamStillLeader(Overseer.java:322)
        at org.apache.solr.cloud.Overseer$ClusterStateUpdater.access$300(Overseer.java:91)
        at org.apache.solr.cloud.Overseer$ClusterStateUpdater$1.run(Overseer.java:294)
01-May-2019 09:08:46.050 WARNING [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [solr] appears to have started a thread named [OverseerExitThread] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
01-May-2019 09:08:46.084 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /opt/modules/solrcloud/tomcat2/webapps/solr has finished in 24,458 ms
01-May-2019 09:08:46.090 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /opt/modules/solrcloud/tomcat2/webapps/docs
01-May-2019 09:08:46.104 INFO [localhost-startStop-1-SendThread(hadoop01:2182)] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access: this web application instance has been stopped already. Could not load [org.apache.zookeeper.server.ZooTrace]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
 java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [org.apache.zookeeper.server.ZooTrace]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
        at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1305)
        at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1293)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1158)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1128)

查找很多资料,始终无法解决。最终无奈翻官方文档,才有解决的思路。

二、问题原因

官方文档:http://archive.apache.org/dist/lucene/solr/ref-guide/apache-solr-ref-guide-4.10.pdf,找到版本兼容性问题问题。solr-4.10.3以上应当使用zookeeper3.4.6,而现在cdh5.7.0使用的是zookeeper-3.4.5-cdh5.7.0!!!真是坑爹!还是官方靠谱。

三、解决办法

1.尝试只替换zookeeper为zookeeper-3.4.6,但是还是不能连接,报错

solr-4.10.3-cdh5.7.0/zookeeper-3.4.6/apache-tomcat-8.5.12/jdk1.7

2.最终方法,不用cdh版本的solr,全部替换为apache版本

solr-4.10.3/zookeeper-3.4.6/apache-tomcat-8.5.12/jdk1.7

然后,重新配置solr cloud,结果世界清静了!

四、总结

1.注意版本兼容性问题!这个在大数据平台很常见!

2.官网才是王道!

猜你喜欢

转载自blog.csdn.net/u010886217/article/details/89737683
今日推荐