Przeładowanie konfiguracji SolrCloud (przechowywanej w Zookeeperze) - schemat.xml

Skonfigurowałem replikację SolrCloud używając samodzielnego zookeepera. Ale teraz chciałbym wprowadzić pewne zmiany w moim schemacie.xml i przeładować rdzeń. Problem polega na tym, że gdy uruchamiam pojedynczy serwer Solr (nie solrcloud) nowy schemat jest ładowany, ale nie wiem, jak przeładować schemat na wszystkich serwerach replikacji. Próbowałem przeładować schemat na jednym z serwerów bez pożądanego wpływu. Czy istnieje sposób, w którym mogę przeładować mój schemat.xml w Solr w konfiguracji replikacji rozproszonej, która używa zookeepera.

Author: freedev, 2013-04-05

4 answers

Właśnie znalazłem rozwiązanie, które musimy wypchnąć zmienioną konfigurację do zespołu zookeeper.

Po prostu użyj

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

Zkcli.sh jest obecny pod example / Cloud-scripts

 26
Author: Global Warrior,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-22 08:16:34

Odpowiedź oznaczona jako poprawna jest błędna. musisz użyć Solr Collection API

Po załadowaniu nowej konfiguracji kolekcji (indeksu) za pomocą Solr zkcli.sh narzędzie Konfiguracja nie zostanie przeładowana automatycznie.

API kolekcji Solr są wskazane dla SolrCloud, a przeładowanie konfiguracji będzie rozłożone w całym klastrze. O ile wiem API Solr Collection są dostępne co najmniej z Solr 4.8.

The procedura jest nieco inna i z tymi API można przeładować konfigurację na całym klastrze za pomocą tylko jednego wywołania API .

Wystarczy przesłać zaktualizowaną konfigurację za pomocą Solr zkcli.sh użyteczność. Zwróć uwagę, aby nie mylić Solr zkcli.sh z Zookeeper zkCli.sh mają całkiem tę samą nazwę, ale zupełnie inny cel.

Tak jak powiedziane użyj Solr zkcli.sh (w momencie pisania jest w katalogu server/scripts/cloud-scripts):

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

Następnie można przeładować konfiguracja collection1 z:

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

Cały klaster zostanie zaktualizowany.

 8
Author: freedev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-08-18 15:52:26

Poniżej znajduje się polecenie Dla Windows,

Będzie prawie tak samo w Unixie musimy tylko zmienić ścieżkę Solr lib i separator class-path ; & : ponieważ jego Komenda java powinna działać również w Unixie.

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

Krótkie informacje o komendzie w następujący sposób:

Konfiguracja log4j do logowania.

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

Class path to run "org.Apacz.solr.Chmura.ZkCLI".Klasa.

Upewnij się, że UNIX i Windows będą miały różne : (Unix seperator); (Windows Separator)

  • -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 ( zdalny Host I port, na którym działa Solr Zookeeper )
  • -confdir E:/New_Solor_Conf (Lokalny katalog, który musimy przesłać.)
  • - confname Solor_conf Nazwa zdalnej instancji.

Jeśli nie użyjesz poprawnej ścieżki klasy, otrzymasz błąd:

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

Lub

 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)

Jestem w stanie przesłać moje lokalne zmiany konfiguracji bez fizycznego logowania do zdalnego Solr box. Mam nadzieję, że zadziała również dla innych.

 1
Author: Laxman G,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-22 11:28:24

To mi się udało:

    bin/solr zk -upconfig -n collectionName -d pathto/Conf_directory -z localhost:2181/solr
 1
Author: Tarun Reddy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-24 11:03:57