Как скачать конфигурацию коллекции Solr из zookeeper

У меня есть коллекция в solrcloud, которая была создана с использованием управляемой конфигурации zookeeper, и мне нужны все файлы конфигурации коллекции, которые использовались для создания коллекции. Вот какие варианты я нашел:

  1. Скопируйте вручную все файлы из пользовательского интерфейса Solrcloud.

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

  2. Скачать файлы с zookeeper

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

Второй вариант сэкономит мне много времени, но проблема в том, что у моего зоопарка огромный список конфигураций, и я не уверен, какой каталог конфигурации использовался для создания коллекции.

Есть ли способ выяснить, какая конфигурация коллекции использовалась для создания коллекции?


person Rahul Sharma    schedule 24.05.2017    source источник


Ответы (2)


информация о том, какой конфиг использовался для создания коллекции, хранится в самом 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 
    
person Persimmonium    schedule 24.05.2017

Наборы конфигурации обычно находятся в каталоге с именем /configs. Если zookeeper предназначен для solr, это обычно находится на верхнем уровне, если он используется несколькими приложениями, это обычно для "zk chroot" конфигурации в подкаталог.

Как только вы найдете нужное место в zookeeper, один каталог в каталоге configs должен совпадать с именем, отображаемым как «config-name» в пользовательском интерфейсе администратора в разделе «Коллекции»> «имя_вашей_коллекции».

Если в вашем проекте используется gradle, загрузка конфигураций вверх/вниз из проекта (где вы, возможно, захотите проверить эти вещи в системе управления версиями) может быть несколько сглажена с помощью плагина (отказ от ответственности: я написал этот плагин)

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

Однако следует помнить о дополнительной сложности: если коллекция использует управляемую схему, используемая фактическая схема будет не в schema.xml, а в файле с именем «управляемая схема».

Поля могли быть добавлены через Schema Rest API, поэтому "файлы используется для создания коллекции» немного нечетко в этом отношении, но manage_schema можно переименовать в schema.xml, а конфигурацию solr изменить на выведите вещи из управляемого режима, если хотите.

person Gus    schedule 24.05.2017