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.
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
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.
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.
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
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