Репликация solr-сервера только для чтения

Я создал индекс solr 1.4 и хотел бы обслуживать запросы к нему для приложения с большим объемом. Индекс, который я запрашиваю, является статическим — больше никаких обновлений не допускается. Несколько клиентских приложений, отправляющих запросы на сервер, загружают ЦП примерно до 200% на четырехъядерном компьютере с Ubuntu, поэтому я подумал о том, чтобы реплицировать индекс на втором компьютере и запускать его параллельно, чтобы увеличить пропускную способность.

Я закрыл solr, скопировал индекс в отдельный каталог, настроил сервер solr так, чтобы он указывал на новый индекс, и запустил их оба. В то время как исходный сервер работал по-прежнему, копия не смогла найти никаких документов.

Когда я делаю список каталогов на серверах, я вижу что-то немного странное: это список исходного индексного каталога.

total 3581328
-rw-r--r-- 1 gene pal 2502676419 2010-07-08 20:53 _38.fdt
-rw-r--r-- 1 gene pal     488660 2010-07-08 20:53 _38.fdx
-rw-r--r-- 1 gene pal        198 2010-07-08 20:53 _38.fnm
-rw-r--r-- 1 gene pal  213752776 2010-07-08 20:54 _38.frq
-rw-r--r-- 1 gene pal     366496 2010-07-08 20:54 _38.nrm
-rw-r--r-- 1 gene pal  725677119 2010-07-08 20:54 _38.prx
-rw-r--r-- 1 gene pal    1124453 2010-07-08 20:54 _38.tii
-rw-r--r-- 1 gene pal   85260530 2010-07-08 20:54 _38.tis
-rw-r--r-- 1 gene pal     280471 2010-07-08 20:54 _38.tvd
-rw-r--r-- 1 gene pal  133020745 2010-07-08 20:54 _38.tvf
-rw-r--r-- 1 gene pal     977316 2010-07-08 20:54 _38.tvx
-rw-r--r-- 1 gene pal        299 2010-07-08 20:54 segments_1b
-rw-r--r-- 1 gene pal         20 2010-07-08 20:54 segments.gen

и это список копии:

total 3577796
-rw-r--r-- 1 gene pal 2502676419 2010-07-10 23:16 _38.fdt
-rw-r--r-- 1 gene pal     488660 2010-07-10 23:15 _38.fdx
-rw-r--r-- 1 gene pal        198 2010-07-10 23:15 _38.fnm
-rw-r--r-- 1 gene pal  213752776 2010-07-10 23:15 _38.frq
-rw-r--r-- 1 gene pal     366496 2010-07-10 23:15 _38.nrm
-rw-r--r-- 1 gene pal  725677119 2010-07-10 23:16 _38.prx
-rw-r--r-- 1 gene pal    1124453 2010-07-10 23:16 _38.tii
-rw-r--r-- 1 gene pal   85260530 2010-07-10 23:15 _38.tis
-rw-r--r-- 1 gene pal     280471 2010-07-10 23:16 _38.tvd
-rw-r--r-- 1 gene pal  133020745 2010-07-10 23:16 _38.tvf
-rw-r--r-- 1 gene pal     977316 2010-07-10 23:16 _38.tvx
-rw-r--r-- 1 gene pal        299 2010-07-10 23:15 segments_1b
-rw-r--r-- 1 gene pal         20 2010-07-10 23:15 segments.gen

Хотя все размеры файлов выглядят одинаково, общая сумма, показанная в верхней части каждого списка, отличается. И хотя сообщения запуска solr предполагают, что он просматривает этот каталог

INFO: Opening new SolrCore at solr/, dataDir=./data/

статистика администратора не показывает документов, доступных для solr

Что еще я должен посмотреть, чтобы устранить эту проблему?

Спасибо,

Ген


person Gene Golovchinsky    schedule 11.07.2010    source источник
comment
Вы также скопировали solrconfig.xml и schema.xml?   -  person Mauricio Scheffer    schedule 12.07.2010


Ответы (2)


Я обнаружил, что гораздо проще использовать встроенный API репликации Solr, чем копировать индексные файлы. вокруг файловой системы.

Создайте новое пустое ядро ​​на подчиненной машине. Затем дайте указание этому ядру выполнить репликацию с существующего мастера с помощью команды fetchindex. Solr возьмет на себя всю остальную тяжелую работу за вас.

Например, вы получите примерно такой URL-адрес:

http://slave_host:port/solr/corename/replication?command=fetchindex&masterUrl=http://master_host:port/solr/corename/replication

person Nick Zadrozny    schedule 12.07.2010
comment
Это выглядит хорошо, и я дошел до того, что выяснил, что мне нужно включить это в solrconfig.xml на обоих, в том числе сообщить мастеру о репликации после фиксации. Однако я застрял в том, чтобы заставить ведомое устройство иметь более старую версию, так что оно фактически будет выполнять fetchindex, поскольку оно развернулось после ведущего, а его временная метка новее. Кажется, что новые основные коммиты увеличивают только миллисекундные цифры в номере версии. Какие-нибудь советы? (Солнце 1.4) - person mrooney; 30.06.2011
comment
Хорошо, хитрость для меня заключалась в том, чтобы поместить мастер в подчиненный XML вместо указания в качестве параметра URL, а затем просто использовать команду = fetchindex. Спасибо! - person mrooney; 30.06.2011

(Я разместил исходный вопрос до того, как создал учетную запись stackoverflow, и не могу понять, как редактировать оригинал; следовательно, второй пост, а не редактирование или комментарий; извините за путаницу.)

Да, я скопировал весь каталог solr, а затем отредактировал solrconfig.xml, указав на второе расположение индекса. При запуске оба экземпляра solr сообщают о правильном расположении dataDir.

person Gene Golovchinsky    schedule 11.07.2010
comment
Ошибок в логе вообще нет? Скрытых файлов нет? (т.е. попробуйте ls -a) - person Mauricio Scheffer; 12.07.2010
comment
Оказывается, это была моя глупость (которая все время была операционным предположением): я указал расположение индекса в файле solrconfig.xml как ./data, а не как ./solr/data, потому что я скопировал его из комментария выше. - person Gene Golovchinsky; 15.07.2010