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

Сведения о системе:
ОС: Cent OS 5.5 x86_64
Ява - 1,7 (1,7,0_25)
кот: 6.0.37
Solr 4.4 (настроен для многоядерности)

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

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

Вот что я сделал:
1. скачал кот 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. скопировать jar-файлы slf4j в tomcat. При попытке запустить приложение solr из менеджера tomcat обнаружилось множество ошибок sl4j в журналах catalina. Это было решено путем копирования библиотек 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 создается под webapps в tomcat:

ll webapps/solr/

выход:

-rw-r - r-- 1 кот tomcat 5642 июл 10 11:11 admin.html
drwxr-xr-x 3 tomcat tomcat 4096 19 сентября 18:53 css
-rw-r- r-- 1 кот кот кот 1146 июл 10 11:11 favicon.ico
drwxr-xr-x 4 tomcat tomcat 4096 19 сентября 18:53 img
drwxr-xr-x 4 tomcat tomcat 4096 19 сентября 18:53 js
drwxr-xr-x 2 tomcat tomcat 4096 19 сентября 18:53 META-INF
drwxr-xr-x 2 tomcat tomcat 4096 19 сентября 18:53 tpl
drwxr-xr-x 3 tomcat tomcat 4096 19 сентября 18:53 ВЕБ-ИНФ

При нажатии на / solr в менеджере tomcat, т.е. URL: http://localdomain.com:8400/solr/ Появится следующая страница:

HTTP Status 503 - сервер выключается

Тип Статус отчета

Сервер сообщений выключается

описание Запрошенная услуга в данный момент недоступна.
Apache Tomcat / 6.0.37

SOLR CONFIG: /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

1 ответ

Решение

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

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

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

Из практических рекомендаций я узнал следующее:

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

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

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

4 Измените tomcat server.xml и убедитесь, что в нем есть 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/corendom0,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/

В остальном, сверьтесь с "How-To"

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

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

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

Другие вопросы по тегам