Solr 8.11.1集群出现SolrCore初始化失败 找不到对应集合
Solr 8.11.1 集群启动报
Could not find collection核心加载失败解决方案 问题根因
报错涉及的mail、solr、atom、tika、db5个核心均为Solr发行包自带的示例核心,不属于业务必需组件。触发报错的直接原因是:
- Solr以SolrCloud模式启动时,核心自动扫描逻辑扫到了节点本地残留的示例核心目录,尝试自动加载这些核心
- 全新部署时没有将这些示例核心对应的配置集上传到外部ZooKeeper,也没有在集群中创建对应的collection,ZkController在预注册阶段校验ClusterState时找不到对应collection元数据,直接抛出异常导致核心加载失败。
修复步骤
1. 清理所有节点的无效示例核心目录
逐台登录3台Solr节点执行操作:
- 进入Solr安装根目录(默认路径参考
/opt/solr-8.11.1,替换为实际安装路径) - 进入
server/solr/路径,直接删除mail、solr、atom、tika、db5个示例核心的文件夹,这些文件仅用于单机测试,集群生产环境无作用 - 打开
server/solr/solr.xml配置文件,检查<solrcloud>配置段的coreRootFolder参数,确认指向规划的业务核心专属存储路径,不要指向包含示例文件的默认示例目录
2. 清理ZooKeeper中残留的无效Solr元数据
因为是全新干净部署,无存量业务数据,直接清理ZK上的Solr节点即可:
- 任选一台Solr节点执行命令,清理ZK上的Solr根节点:
bin/solr zk rm -r /solr -z <ZK节点1IP>:2181,<ZK节点2IP>:2181,<ZK节点3IP>:2181
如果给Solr配置了ZK chroot路径(比如
/solrcluster),把命令里的/solr替换成实际使用的chroot路径即可
- 重新上传Solr默认基础配置集到ZK:
bin/solr zk upconfig -n _default -d server/solr/configsets/_default -z <ZK节点1IP>:2181,<ZK节点2IP>:2181,<ZK节点3IP>:2181
3. 重启集群验证
逐台重启所有Solr节点,启动完成后访问8983端口的管理控制台,之前的5个核心初始化错误会完全消失。
后续避坑提示
- SolrCloud模式下禁止手动在节点本地创建core目录,所有核心的创建、删除操作都要通过Collection API完成,手动创建本地core必然会出现本地状态和ZK ClusterState不一致的问题
- 生产环境部署时建议提前删除Solr安装包下所有example相关的示例文件,避免自动扫描加载无用核心触发异常
内容的提问来源于stack exchange,提问作者joby
相关产品推荐
相关产品推荐

