【问题标题】:Apache Solr Cloud Backup Issues to path when 'solr.allowPaths' is set设置“solr.allowPaths”时,Apache Solr 云备份问题到路径
【发布时间】:2021-11-30 17:13:30
【问题描述】:

我正在尝试备份 solr 云集合。 Solr 和 Zookeeper 在 docker 容器中运行。有 3 个 solr(使用端口:8981,8982,8983)和 3 个 ZKs 容器正在运行。我正在将 docker 卷传递给 solr 容器

volumes:
    - solr_backups:/solr-backups/storage

在 Dockerfile 中构建文件夹并提供chmod 777。 因此,所有 solr 容器都将文件夹视为网络共享(我假设)。

执行

$ curl "localhost:8981/solr/admin/collections?action=BACKUP&name=test1&collection=myColl&location=/solr-backups/storage"

返回以下内容

...
 "failure":{
    "172.19.0.22:8983_solr":"org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException:
Error from server at http://172.19.0.22:8983/solr: 
Failed to backup core=myColl_shard1_replica_n1 because org.apache.solr.common.SolrException: 
Path /solr-backups/storage/test1 must be relative to SOLR_HOME, SOLR_DATA_HOME coreRootDirectory. 
Set system property 'solr.allowPaths' to add other allowed paths."},
  "Operation backup caused exception:":"org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: 
Could not backup all shards",
  "exception":{
    "msg":"Could not backup all shards",
    "rspCode":500},
  "error":{
    "metadata":[
      "error-class","org.apache.solr.common.SolrException",
      "root-error-class","org.apache.solr.common.SolrException"],
    "msg":"Could not backup all shards",
...

curl 被发送到 8981(可以发送到 3 个中的任何一个)。从 8983 报告该错误。myColl 在 8981 上没有分片。正在创建备份文件夹 test1,所有 3 个正在运行的 solr 容器都可以访问该文件夹。

在其中一个容器中执行 shell。

$ ls -al /solr-backups/storage/
total 16
drwxrwxrwx 4 root root 4096 Nov 30 16:49 .
drwxr-xr-x 3 root root 4096 Nov 30 16:22 ..
drwxr-xr-x 2 solr root 4096 Nov 30 16:49 test1
drwxr-xr-x 2 solr root 4096 Nov 30 16:25 test3

显示文件夹存在并归 solr 所有。

来自 solr.xml

  <str name="allowPaths">${solr.allowPaths:*,_ALL_,/solr-backups/storage/}</str>

我已经用 * 和路径尝试了上述方法。此外,所有的特价商品和路径。

我在执行 docker-compose up 时也设置了一个集群属性

curl \"http://solr1:8983/solr/admin/collections?action=CLUSTERPROP&name=location&val=/solr-backups/storage\";

任何帮助将不胜感激。

【问题讨论】:

    标签: docker solr docker-volume solrcloud backups


    【解决方案1】:

    错误信息显示:

    /solr-backups/storage/test1 must be relative to SOLR_HOME, SOLR_DATA_HOME coreRootDirectory. 
    

    所以你需要有一个类似 $SOLR_HOME/solr-backups/storage/ 的目录或 $SOLR_DATA_HOME/solr-backups/storage/

    对于 solr v8.11,$SOLR_HOME 是 /var/solr/data

    【讨论】:

      猜你喜欢
      • 2011-02-06
      • 1970-01-01
      • 2016-02-16
      • 2014-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-11
      相关资源
      最近更新 更多