Solr Cloud 8.10本地备份报LocalFileSystemRepository类找不到错误如何解决
问题根因
你的错误完全是由类名拼写错误导致的,和jar包缺失无关,不需要额外复制dist下的jar文件:
你在solr.xml中配置的类名org.apache.solr.core.backup.repository.LocalFileSytemRepository存在拼写错误,Sytem为错误拼写,正确拼写为System,完整正确类名是org.apache.solr.core.backup.repository.LocalFileSystemRepository。
同时你还有两处需要修正的配置问题:
- 你配置的仓库默认存储路径为
/var/solr/backup_data,但curl请求中又指定了location=/var/solr/data,路径冲突且多余 - SolrCloud模式下需要所有节点的备份路径都存在,且Solr运行用户有读写权限
解决步骤
- 恢复你之前修改的lib目录,删除你额外复制进去的所有dist目录jar文件,避免出现类冲突
- 修正所有Solr节点solr.xml中的备份配置,修正后的配置如下:
<backup> <repository name="local_repo" class="org.apache.solr.core.backup.repository.LocalFileSystemRepository" default="true"> <str name="location">/var/solr/backup_data</str> </repository> </backup>
- 在所有Solr节点执行以下命令创建备份目录并赋权:
mkdir -p /var/solr/backup_data chown -R solr:solr /var/solr/backup_data
- 逐台重启所有Solr节点,确保配置生效
- 重新发起备份请求,无需额外指定location参数即可使用配置的默认路径:
curl --location --request POST 'http://localhost:8983/solr/admin/collections?action=BACKUP&name=自定义备份名称&collection=待备份的集合名称'
内容的提问来源于stack exchange,提问作者Ricardo Rubik Ruiz
相关产品推荐
相关产品推荐

