web-dev-qa-db-fra.com

Rechargement de la configuration SolrCloud (stockée sur Zookeeper) - schema.xml

J'ai configuré une réplication SolrCloud à l'aide d'un zookeeper autonome. Mais maintenant, je souhaite apporter quelques modifications à mon fichier Schema.xml et recharger le noyau. Le problème est que lorsque je lance un seul serveur Solr (no solrcloud), le nouveau schéma est chargé, mais je ne sais pas comment recharger le schéma sur tout le serveur de réplication. J'ai essayé de recharger le schéma sur l'un des serveurs sans impact souhaité. Existe-t-il un moyen de recharger mon fichier schema.xml dans Solr dans l’installation de réplication distribuée qui utilise zookeeper. 

18
Global Warrior

Vient de trouver la solution dont nous avons besoin pour pousser la configuration modifiée vers un ensemble de gardien de zoo.

Juste utiliser 

sh zkcli.sh -cmd upconfig -zkhost  127.0.0.1:2181  -collection collection1 -confname myconf -solrhome ../solr -confdir ../solr/collection1/conf

zkcli.sh est présent sous example/cloud-scripts

26
Global Warrior

La réponse marquée comme correcte est fausse. Vous devez utiliser API Solr Collection

Les API Solr Collection sont indiquées pour SolrCloud et le rechargement de la configuration sera réparti dans l’ensemble du cluster. Pour autant que je sache, les API de Solr Collection sont disponibles au moins à partir de Solr 4.8.

La procédure est légèrement différente et avec ces API, vous pouvez recharger la configuration sur l'ensemble du cluster avec un seul appel d'API .

Téléchargez simplement votre configuration mise à jour avec l'utilitaire Solr zkcli.sh . Faites attention à ne pas confondre Solr zkcli.sh avec Zookeeper zkCli.sh, ils ont tout à fait le même nom mais un but complètement différent. 

Donc, comme dit utiliser Solr zkcli.sh (est dans le répertoire server/scripts/cloud-scripts):

./zkcli.sh -cmd upconfig -zkhost 127.0.0.1:2181 -collection collection1 -confname myconf -confdir path/to/solr/collection1/conf

Ensuite, vous pouvez recharger la configuration avec:

http://server1:8983/solr/admin/collections?action=RELOAD&name=collection1

L'ensemble du cluster sera mis à jour.

6
freedev

Ci-dessous la commande pour Windows, 

Le système informatique sera presque le même sous Unix, nous devons simplement changer le chemin de Solr lib et le séparateur de chemin de classe ; & : Parce que sa commande Java doit s’exécuter également sous Unix. 

Java  -Dlog4j.configuration="file:E:/solr-5.5.1/server/scripts/cloud-scripts/log4j.properties" -classpath .;E:/solr-5.5.1/server/solr-webapp/webapp/WEB-INF/lib/*;E:/solr-5.5.1/server/lib/ext/* org.Apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 192.168.42.13:2787 -confdir E:/New_Solor_Conf -confname Solor_conf

Bref détails sur la commande comme suit: 

Configuration de log4j pour la journalisation.

  • -Dlog4j.configuration = "fichier: E: /solr-5.5.1/server/scripts/cloud-scripts/log4j.properties 

Chemin de classe à exécuter "org.Apache.solr.cloud.ZkCLI". classe.

assurez-vous qu'UNIX et Windows auront des noms différents: (séparateur Unix); (séparateur Windows) 

  • -classpath.; E: /solr-5.5.1/server/solr-webapp/webapp/WEB-INF/lib /; E: /solr-5.5.1/server/lib/ext/
  • -zkhost 192.168.42.13:2787 ( Hôte distant et port sur lequel Solr Zookeeper est exécuté )
  • -confdir E:/New_Solor_Conf (Répertoire local que nous devons télécharger.)
  • -confname Solor_conf Nom de l'instance distante.

Si vous n'utilisez pas le chemin de classe correct, vous obtiendrez une erreur du type:  

  Error: Could not find or load main class org.Apache.solr.cloud.ZkCLI

ou

 Exception in thread "main" Java.lang.NoClassDefFoundError: org/slf4j/LoggerFacto
    ry
            at org.Apache.solr.common.cloud.SolrZkClient.<clinit>(SolrZkClient.Java:
    71)
            at org.Apache.solr.cloud.ZkCLI.main(ZkCLI.Java:183)
    Caused by: Java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
            at Java.net.URLClassLoader$1.run(URLClassLoader.Java:366)
            at Java.net.URLClassLoader$1.run(URLClassLoader.Java:355)

Je peux télécharger mes modifications de configuration locales sans me connecter physiquement à la boîte de dialogue Solr distante. J'espère que cela fonctionnera pour les autres également. 

2
Laxman G

Cela a fonctionné pour moi:

    bin/solr zk -upconfig -n collectionName -d pathto/Conf_directory -z localhost:2181/solr
1
Tarun Reddy