【问题标题】:How to download Solr collection config from zookeeper如何从 zookeeper 下载 Solr 集合配置
【发布时间】:2017-10-25 06:04:47
【问题描述】:

我在 solrcloud 中有一个使用 zookeeper 托管配置创建的集合,我想要所有用于创建集合的集合配置文件。以下是我找到的选项:

  1. 从 Solrcloud UI 手动复制所有文件。

    solrUI->cloud->tree->/collections/<collection-name>

  2. 从动物园管理员下载文件

    /opt/solr/server/scripts/cloud-scripts/zkcli.sh -cmd downconfig -zkhost <zk hosts>/usecasedir -confname <configuration name> -confdir <dir to download>

第二个选项可以节省我很多时间,但问题是我的 Zookeeper 有大量配置,我不确定哪个配置目录用于创建集合。

有什么方法可以确定使用哪个集合配置来创建集合?

【问题讨论】:

    标签: solr apache-zookeeper solrcloud


    【解决方案1】:

    用于创建集合的配置信息存储在 zk 本身中。一些 bash 脚本(使用出色的 jq 实用程序)足以满足您的需要:

    1. 查找给定 XXX 集合使用的配置:

      CONFIGNAME=$(curl -L -s "http://localhost:8983/solr/admin/zookeeper?detail=true&path=/collections/XXX" | jq '.znode.data' | cut -d ":" -f2 | tr -d '}"\\') 
      
    2. 现在下载配置:

      /opt/solr/bin/solr zk downconfig -n $CONFIGNAME -d config$CONFIGNAME -z localhost:2181 
      

    【讨论】:

      【解决方案2】:

      配置集通常位于名为 /configs 的目录中。如果 zookeeper 专用于 solr,这通常位于顶层,如果它被多个应用程序使用,则通常将“zk chroot”配置到子目录。

      一旦你在 zookeeper 中找到正确的位置,configs 目录中的一个目录应该与管理 UI 中 Collections > name_of_your_collection 下显示为“config-name”的名称匹配

      如果您的项目使用 gradle,则可以通过插件(免责声明:我编写此插件)来平滑项目中配置的上/下加载(您可能希望将这些内容检查到版本控制中)

      https://plugins.gradle.org/plugin/com.needhamsoftware.solr-gradle

      还有一个额外的复杂情况需要注意,但是,如果集合使用托管模式,那么实际使用的模式将不在 schema.xml 中,而是在名为“托管模式”的文件中

      可能已经通过Schema Rest API 添加了字段,因此“用于创建集合的文件”在这方面有点模糊,但是可以将 managed_schema 重命名为 schema.xml 并将 solr 配置修改为take things out of managed模式,如果你想。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-23
        • 1970-01-01
        • 1970-01-01
        • 2015-04-19
        • 1970-01-01
        • 1970-01-01
        • 2016-08-23
        • 1970-01-01
        相关资源
        最近更新 更多