淘淘商城第61讲——搭建Solr集群时,报错:org.apache.solr.common.SolrException: No shard id for CoreDescriptor ···

痛定思痛。 2022-11-20 08:11 28阅读 0赞

问题描述

搭建好Solr集群之后,我们就会想着要来启动每一个Tomcat服务器实例。当我使用tail -f /usr/local/solr-cloud/tomcat01/logs/catalina.out命令来查看第一个Tomcat服务器的启动日志时,发现报了一个如下图所示的异常。
在这里插入图片描述
不仅第一个Tomcat服务器的启动日志会显示如上异常,而且其他的Tomcat服务器启动时都会报这个异常,该异常的详细信息如下所示。

  1. java.util.concurrent.ExecutionException: org.apache.solr.common.SolrException: Unable to create core [core1]
  2. at java.util.concurrent.FutureTask.report(FutureTask.java:122)
  3. at java.util.concurrent.FutureTask.get(FutureTask.java:192)
  4. at org.apache.solr.core.CoreContainer.lambda$load$14(CoreContainer.java:671)
  5. at com.codahale.metrics.InstrumentedExecutorService$InstrumentedRunnable.run(InstrumentedExecutorService.java:176)
  6. at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
  7. at java.util.concurrent.FutureTask.run(FutureTask.java:266)
  8. at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:188)
  9. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
  10. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
  11. at java.lang.Thread.run(Thread.java:748)
  12. Caused by: org.apache.solr.common.SolrException: Unable to create core [core1]
  13. at org.apache.solr.core.CoreContainer.createFromDescriptor(CoreContainer.java:1045)
  14. at org.apache.solr.core.CoreContainer.lambda$load$13(CoreContainer.java:642)
  15. at com.codahale.metrics.InstrumentedExecutorService$InstrumentedCallable.call(InstrumentedExecutorService.java:197)
  16. ... 5 more
  17. Caused by: org.apache.solr.common.SolrException: No shard id for CoreDescriptor[name=core1;instanceDir=/usr/local/solr-cloud/solrhome01/core1]
  18. at org.apache.solr.cloud.ZkController.checkStateInZk(ZkController.java:1604)
  19. at org.apache.solr.cloud.ZkController.preRegister(ZkController.java:1546)
  20. at org.apache.solr.core.CoreContainer.createFromDescriptor(CoreContainer.java:1022)
  21. ... 7 more

注意:在这儿我使用的Solr是Apache Solr 7.1.0这个版本的。

报错原因

仔细查看上面的异常信息,不难猜测报错原因应该是名称为core1的Solr Core的配置中没有shard这个东东,那我就想了,是不是添加上这个玩意就好了呢?咱们接下来拭目以待!

解决方案

进入到每一个solrhome的core1目录中,然后更改core.properties配置文件,即在其中添加shard=s1这样一行配置,正如下图所示。
在这里插入图片描述
这个时候,再次启动每一个Tomcat服务器实例,你便会发现每一个Tomcat服务器启动时再也不会报这样的异常了。

发表评论

表情:
评论列表 (有 0 条评论,28人围观)

还没有评论,来说两句吧...

相关阅读