Не удается запустить сервис после обновления Elasticsearch с 1.4.1 до 1.4.4
Я установил Elasticsearch успешно в Windows 7 версии x64, используя ELS 1.4.1. После обновления до RTM Kibana 4 для него потребовалось ELS 1.4.4.
Чтобы выполнить обновление, я выполнил следующие шаги:
- Скачан ELS 1.4.4
- Остановлен и удален сервис ELS 1.4.1
- Переименовал текущий каталог установки в elasticsearch_bak
- Извлечение 1.4.4 zip в каталог elasticsearch
- Сравнив /config/elasticsearch.yml и config/logging.yml и применив изменения (которые содержат следующие дополнительные настройки внизу)
# Helps Chrome work properly
http.cors.allow-origin: "/.*/"
http.cors.enabled: true
После запуска службы она останавливается в течение нескольких секунд. Журналы выглядят следующим образом:
Версия Java
(Обратите внимание, что это предназначено для разработки)
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) Client VM (build 25.31-b07, mixed mode, sharing)
Журнал событий
The Elasticsearch 1.4.4 (elasticsearch) service terminated with service-specific error Incorrect function..
elasticsearch-STDERR-2015.05.20.log
2015-02-20 08:49:13 Commons Daemon procrun stderr initialized
Exception in thread "main" ror: Could not initialize class org.elasticsearch.Version
at org.elasticsearch.bootstrap.Bootstrap.buildErrorMessage(Bootstrap.java:254)
at org.elasticsearch.bootstrap.Bootstrap.main(Bootstrap.java:238)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:32)
The data area passed to a system call is too small.
Failed to start service
elasticsearch-стандартный вывод-2015.05.20.log
2015-02-20 08:46:03 Commons Daemon procrun stdout initialized
elasticsearch.2015-02-20.log
[2015-02-20 08:49:14] [info] ( prunsrv.c:1284) [ 8560] Service started in 1198 ms.
[2015-02-20 08:49:14] [debug] ( prunsrv.c:844 ) [ 8560] reportServiceStatusE: 4, 0, 0, 0
[2015-02-20 08:49:14] [debug] ( prunsrv.c:1528) [ 8560] Waiting for worker to finish...
[2015-02-20 08:49:14] [debug] ( prunsrv.c:1533) [ 8560] Worker finished.
[2015-02-20 08:49:14] [debug] ( prunsrv.c:1559) [ 8560] Waiting for all threads to exit
[2015-02-20 08:49:14] [debug] ( prunsrv.c:844 ) [ 8560] reportServiceStatusE: 3, 0, 0, 0
[2015-02-20 08:49:14] [debug] ( prunsrv.c:1563) [ 8560] JVM destroyed.
[2015-02-20 08:49:14] [debug] ( prunsrv.c:844 ) [ 8560] reportServiceStatusE: 1, 1066, 0, 1
[2015-02-20 08:49:14] [info] ( prunsrv.c:1598) [10064] Run service finished.
[2015-02-20 08:49:14] [info] ( prunsrv.c:1764) [10064] Commons Daemon procrun finished
[2015-02-20 08:49:14] [info] ( prunsrv.c:1764) [10064] Commons Daemon procrun finished
[2015-02-20 08:49:16] [error] ( prunsrv.c:746 ) [10116] Failed to start 'elasticsearch' service
[2015-02-20 08:49:16] [error] ( prunsrv.c:746 ) [10116] The data area passed to a system call is too small.
[2015-02-20 08:49:16] [info] ( prunsrv.c:754 ) [10116] Start service finished.
[2015-02-20 08:49:16] [error] ( prunsrv.c:1755) [10116] Commons Daemon procrun failed with exit value: 5 (Failed to start service)
[2015-02-20 08:49:16] [error] ( prunsrv.c:1755) [10116] The data area passed to a system call is too small.
Если я запускаю elasticsearch из командной строки, я получаю эту ошибку:
c:\elk\elasticsearch\bin>elasticsearch
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class org.elasticsearch.Version
at org.elasticsearch.bootstrap.Bootstrap.buildErrorMessage(Bootstrap.java:254)
at org.elasticsearch.bootstrap.Bootstrap.main(Bootstrap.java:238)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:32)
Ответы
Ответ 1
У меня была такая же проблема, и вот как я ее исправил.
Вот моя настройка
Я использую Windows Server 2008 R2 Enterprise
- 64-разрядную версию. Все отлично работало с версией Java (JRE) 1.8.0_25
. Эластичный поиск был установлен как служба Windows.
Именно перед этой проблемой я обновил Java до версии 1.8.0_31
и перезапустил машину.
Вот история шагов, которые я предпринял
Во-первых, после перезагрузки машины я заметил, что служба ElasticSearch была остановлена. После попытки запустить его он снова остановился.
Вот что я получаю в журнале событий:
Служба Elasticsearch 1.4.1 (elasticsearch-service-x64) завершена с ошибкой, зависящей от конкретной службы. Неправильная функция.
Вот что я имел в своем elasticsearch-service-x64.2015-02-27.log
:
[2015-02-27 14:38:29] [info] [ 4948] Commons Daemon procrun (1.0.15.0 64-bit) started
[2015-02-27 14:38:29] [info] [ 4948] Running 'elasticsearch-service-x64' Service...
[2015-02-27 14:38:29] [info] [ 3048] Starting service...
[2015-02-27 14:38:29] [error] [ 3048] Failed creating java C:\Program Files\Java\jre1.8.0_25\bin\server\jvm.dll
[2015-02-27 14:38:29] [error] [ 3048] The system cannot find the path specified.
[2015-02-27 14:38:29] [error] [ 3048] ServiceStart returned 1
[2015-02-27 14:38:29] [error] [ 3048] The system cannot find the path specified.
[2015-02-27 14:38:29] [info] [ 4948] Run service finished.
[2015-02-27 14:38:29] [info] [ 4948] Commons Daemon procrun finished
Затем Я изменил значение системной переменной JAVA_HOME
на C:\Program Files\Java\jre1.8.0_31
![enter image description here]()
Проблема тогда:
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class org.elasticsearch.Version
at org.elasticsearch.bootstrap.Bootstrap.buildErrorMessage(Bootstrap.java:254)
at org.elasticsearch.bootstrap.Bootstrap.main(Bootstrap.java:238)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:32)
Что зафиксировало проблему
-
Я полностью удалил папки bin
, config
, lib
и plugins
из папки ElasticSearch.
Обязательно не удалять каталог data
, потому что там расположены ваши индексы!
- Распакуйте те же папки (
bin
, config
и lib
) из elasticsearch-1.4.4.zip
.
- Ran
SC DELETE elasticsearch-service-x64
в качестве администратора в командной строке (для удаления установленной службы)
-
Ran F:\Services\elasticsearch\bin>service.bat install
Installing service : "elasticsearch-service-x64"
Using JAVA_HOME (64-bit): "C:\Program Files\Java\jre1.8.0_31"
The service 'elasticsearch-service-x64' has been installed.
-
Запустил службу
И тогда все начало работать правильно.
![enter image description here]()
Ответ 2
У меня та же проблема.
Он появляется после обновления до новой версии Java. Хотя я изменяю значение переменной "JAVA_HOME" в новый каталог java, проблема остается.
Чем я иду в командной строке, перейдите в каталог ES и выполните следующую команду:
{ElasticSearch directory}\bin>service manager
Эта команда откроет окно свойств Elasticsearch. (http://i.stack.imgur.com/QQEPG.png)
Перейдите на вкладку Java и измените путь к Java Virtual Machine на новую версию Java. После этого просто запустите службу ES
{ElasticSearch directory}\bin>service start
Ответ 3
Проблема вызвана service.bat
, распределенной с помощью Elastic, которая полагается на Apache Common Procrun и устанавливает JVM с помощью переменной окружения %JAVA_HOME%
который не разрешен правильно.
Поэтому я исправил проблему, установив "Default JVM" в графическом интерфейсе, который появляется с service.bat manager
.
Другой способ исправить проблему с помощью командной строки:
elasticsearch-service-x64.exe //US//YOUR_SERVICE_NAME --Jvm auto
то есть.
elasticsearch-service-x64.exe //US//elasticsearch-service-x64 --Jvm auto
Ответ 4
Обновлен JDK от jdk1.7.0_21 до jdk1.8.0_77.Changed the Java_Home, и он начал нормально работать.
Ответ 5
У меня была еще одна версия elasticsearch. Просто удаление старой версии сработало для меня.
elasticsearch-2.0.0\bin > удалить сервис
Ответ 6
Что сработало для меня, так это запустить "диспетчер сервисов" в папке bin и установить JVM по умолчанию.