Назад | Перейти на главную страницу

Solr 4.4 с tomcat 6 бросает 503 в диспетчер tomcat

Сведения о системе:
ОС: Cent OS 5.5 x86_64
java - 1.7 (1.7.0_25)
кот: 6.0.37
solr 4.4 (настроен на многоядерность)

У меня был многоядерный Solr 4.4, который отлично работал на пристани (хотя на данный момент работает только одно ядро).

Мне нужно запустить то же самое на tomcat 6, чтобы увидеть, может ли он работать лучше, чем пристань.

Вот что я сделал:
1. скачал tomcat 6
из : http://mirrors.sonic.net/apache/tomcat/tomcat-6/v6.0.37/bin/apache-tomcat-6.0.37.tar.gz

2. извлеките apache-tomcat-6.0.37.tar.gz в / usr / local / tomcat /
созданы сценарии запуска и выключения, и процесс выполняется через user: group tomcat: tomcat, проверяет сценарии запуска и обнаруживает, что tomcat работает нормально. Я модифицировал порт с 8080 на 8400

3. создал файл solr.xml под tomcat для приложения solr: файл: /usr/local/tomcat/conf/Catalina/localhost/solr.xml

<?xml version="1.0" encoding="utf-8"?>
<Context docBase="/var/www/projects/solr-oncars/example/solr/solr-4.4.0.war" debug="0" privileged="true" allowLinking="true" crossContext="true">
    <Environment name="solr/home" type="java.lang.String" value="/var/www/projects/solr-oncars/example/solr" override="true" />
</Context>

4. скопируйте solr.war на домашний путь ядра

cp /var/www/projects/solr-oncars/example/webapps/solr.war  /var/www/projects/solr-oncars/example/solr/oncars/

даже пробовал с solr-4.4.war

cp /var/www/projects/solr-oncars/dist/solr-4.4.0.war /var/www/projects/solr-oncars/example/solr/

5. Отредактируйте файл solrconfig.xml.
5.a: Я пробовал редактировать datadir в solrconfig.xml
из :

<dataDir>${solr.core0.data.dir:}</dataDir>

кому:

<dataDir>${solr.core0.data.dir:/var/www/projects/solr-oncars/example/solr/oncars/data}</dataDir>

5.b Я также пробовал после возврата вышеуказанной настройки

6. скопируйте баночки slf4j в tomcat: Обнаружено множество ошибок sl4j в журналах catalina, когда я пытался запустить приложение solr из диспетчера tomcat. Это было решено путем копирования библиотек sl4j из solr в tomcat. Как указано ниже:

cp -v /var/www/projects/solr-oncars/example/lib/ext/slf4j-*  /usr/local/tomcat/lib/
cp -v /var/www/projects/solr-oncars/example/lib/ext/log4j-1.2.16.jar  /usr/local/tomcat/lib/

от 1 до 6 были сделаны для выполнения существующего solr из tomcat. В Tomcat Manager "/ solr" отображается как запущенный. Стоп и Старт тоже не выдают ошибок.

Я вижу, что папка solr создается в веб-приложениях в tomcat:

ll webapps/solr/

вывод:

-rw-r--r-- 1 tomcat tomcat 5642 Jul 10 11:11 admin.html
drwxr-xr-x 3 tomcat tomcat 4096 Sep 19 18:53 css
-rw-r--r-- 1 tomcat tomcat 1146 Jul 10 11:11 favicon.ico
drwxr-xr-x 4 tomcat tomcat 4096 Sep 19 18:53 img
drwxr-xr-x 4 tomcat tomcat 4096 Sep 19 18:53 js
drwxr-xr-x 2 tomcat tomcat 4096 Sep 19 18:53 META-INF
drwxr-xr-x 2 tomcat tomcat 4096 Sep 19 18:53 tpl
drwxr-xr-x 3 tomcat tomcat 4096 Sep 19 18:53 WEB-INF

При нажатии / solr из диспетчера tomcat, то есть URL: http://localdomain.com:8400/solr/ Откроется следующая страница:

HTTP Status 503 - Server is shutting down

type Status report

message Server is shutting down

description The requested service is not currently available.
Apache Tomcat/6.0.37

КОНФИГУРАЦИЯ SOLR: /var/www/projects/solr-oncars/example/solr/solr.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="true">
  <cores adminPath="/admin/cores">
    <core schema="schema.xml" name="oncars" instanceDir="oncars" conf="solrconfig.xml"/>
  </cores>
</solr>

Я пытался поискать в Интернете помощь, но не нашел ничего, что работало. Даже ресурсы от serverfault

Вероятно, проблема была связана с solr, поскольку изначально мы модифицировали solrconfig, а позже даже solr.xml (из solr) в процессе проб и ошибок.

Итак, я проделал все это снова с нуля. На этот раз я сослался на другой, весьма актуальный Как

По сути, моя ошибка заключалась в том, чтобы внести изменения в файл solr. Не делай этого!
Solr Tomcat вики предлагает: "Solr4.3 требует совершенно другого развертывания. Эти инструкции устарели и относятся к неопределенной версии Solr. "
В вики вы, как правило, нажимаете на указатель и пропускаете мелкий шрифт! Я сослался на него, поэтому испортил работу solr (к счастью, я взял резервную копию).

Из упомянутого мною How-To я узнал следующее:

1 Не вносите изменения в рабочую конфигурацию solr (т.е. запустите solr с пристани, чтобы проверить, нормально ли он запускается)

2 Подготовьте tomcat до того, как добавить в него solr. (запустите оба независимо. Остановите оба сервиса, если вы уверены, что оба в порядке)

3 Допустим, путь к solr - /usr/local/solr-4.x, затем скопируйте solr-4.x.war из /usr/local/solr-4.x/dist / solr-4.x.x.war в /usr/local/solr-4.x/example/solr/solr.war . Это все, что вам нужно сделать в каталоге solr. Отдых, вам нужно перенести несколько файлов из каталога solr в каталог tomcat (пункт 6).

4 Измените файл server.xml tomcat и убедитесь, что в нем есть кодировка URIEncoding:

<Connector port="8080" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443"
    URIEncoding="UTF-8" />

5 Создайте файл solr.xml в конфигурации tomcat: vim /usr/local/tomcat/conf/Catalina/localhost/solr.xml добавьте следующие строки:

<Context path="/solr" docBase="/usr/local/solr/example/solr/solr.war" debug="0" crossContext="true">
        <Environment name="solr/home" type="java.lang.String" value="/usr/local/solr/example/solr" override="true"/>
</Context>

нота: ядра solr находятся по пути: /usr/local/solr/example/solr/core{0,1,..n}

6 Скопируйте файлы расширений Solr и файл конфигурации log4j в tomcat:

cp -v /usr/local/solr/example/lib/ext/*  /usr/local/tomcat/lib/
cp -v /usr/local/solr-oncars/example/resources/log4j.properties /usr/local/tomcat/conf/

В остальном перепроверьте с "Как сделать"

В конце концов, предоставьте tomcat право собственности на каталоги solr и tomcat (если tomcat запускается как пользователь / группа 'tomcat'):

chown -R tomcat:tomcat /usr/local/tomcat
chown -R tomcat:tomcat /usr/local/solr

Запустите tomcat и получите доступ к solr-url, это сработало!