web-dev-qa-db-fra.com

Impossible de démarrer le service après la mise à niveau de Elasticsearch de 1.4.1 à 1.4.4

J'ai installé Elasticsearch avec succès sur Windows 7 version x64, avec ELS 1.4.1. Après la mise à niveau vers Kibana 4 RTM, ELS 1.4.4 était nécessaire.

Pour effectuer la mise à niveau, j'ai effectué les étapes suivantes:

  1. ELS téléchargé 1.4.4
  2. Arrêté et suppression du service ELS 1.4.1
  3. Renommé le répertoire d'installation actuel en elasticsearch_bak
  4. Extrait le zip 1.4.4 vers le répertoire elasticsearch
  5. Comparé le /config/elasticsearch.yml et config/logging.yml et appliqué les modifications (qui contient les paramètres supplémentaires suivants en bas)
# Helps Chrome work properly
http.cors.allow-Origin: "/.*/"
http.cors.enabled: true

Lors du démarrage du service, il s’arrête en quelques secondes. Les journaux sont les suivants:

Version Java

(Notez que ceci est à des fins de développement)

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)

Journal des événements

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

Si j'exécute elasticsearch à partir de l'invite de commande, le message d'erreur suivant s'affiche:

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)
19
Dominic Zukiewicz

J'ai eu exactement le même problème et voici comment je l'ai résolu.

Voici ma configuration

J'utilise Windows Server 2008 R2 Enterprise - version 64 bits. Tout fonctionnait bien avec la version 1.8.0_25 de Java (JRE). Elastic Search a été installé en tant que service Windows.

Exactement avant le problème, j'ai mis à jour Java vers la version 1.8.0_31et ai redémarré la machine.

Voici l'historique des pas que j'ai faits

Tout d'abord, après avoir redémarré la machine, j'ai remarqué que le service ElasticSearch était arrêté. Après avoir essayé de le démarrer, il s'est arrêté à nouveau.

Voici ce que je trouve dans mon journal des événements pour le problème:

Le service Elasticsearch 1.4.1 (elasticsearch-service-x64) s'est arrêté avec une erreur spécifique au service Fonction incorrecte ..

Voici ce que j'avais dans mon 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

Puis J'ai changé la valeur de la variable système Java_HOME en C:\Program Files\Java\jre1.8.0_31

enter image description here

La question était alors:

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)

Ce qui a résolu le problème

  1. J'ai complètement supprimé les dossiers bin, config, lib et plugins du dossier ElasticSearch.

    Veillez à ne pas supprimer le répertoire data car vos index sont localisés!

  2. Décompressez les mêmes dossiers (bin, config et lib) à partir de elasticsearch-1.4.4.Zip.
  3. A exécuté SC DELETE elasticsearch-service-x64 en tant qu'administrateur dans l'invite de commande (pour supprimer le service installé)
  4. 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.
    
  5. Commencé le service

Et puis tout a commencé à fonctionner correctement .

enter image description here

24
Nikolay Kostov

J'ai le même problème… .. Il apparaît après la mise à jour vers la nouvelle version de Java. Bien que je remplace la valeur de la variable "Java_HOME" par le nouveau répertoire Java, le problème persiste.

Puis je vais à la commande Invite, navigue vers le répertoire ES et lance la commande suivante:

{ElasticSearch directory}\bin>service manager

Cette commande ouvrira la fenêtre des propriétés Elasticsearch. ( http://i.stack.imgur.com/QQEPG.png )

Ensuite, allez à l'onglet Java et changez le chemin de Machine virtuelle Java à la nouvelle version de Java. Après cela, lancez simplement le service ES 

{ElasticSearch directory}\bin>service start
18
Madjarov

Le problème est dû à service.bat distribué avec Elastic qui s'appuie sur Apache Common Procrun et définit la machine virtuelle Java à l'aide de la variable d'environnement %Java_HOME% qui n'est pas résolue correctement.

J'ai donc résolu le problème en définissant "Default JVM" sur l'interface graphique qui apparaît avec service.bat manager

Un autre moyen de résoudre le problème via la ligne de commande est

elasticsearch-service-x64.exe //US//YOUR_SERVICE_NAME --Jvm auto

c'est à dire.

elasticsearch-service-x64.exe //US//elasticsearch-service-x64 --Jvm auto
11
emmekappa

Mise à jour du JDK de jdk1.7.0_21 à jdk1.8.0_77.Changed Java_Home et il a commencé à fonctionner correctement.

3
Vivek Bhadoria

J'ai eu une autre version de elasticsearch installée. Retirer simplement l'ancienne version a fonctionné pour moi.

elasticsearch-2.0.0\bin> service supprimer

1
Michael Goldshmidt

Ce qui a fonctionné pour moi a été d’exécuter «gestionnaire de service» dans le dossier bin et de définir la machine virtuelle Java par défaut.

1
avantprime

J'ai rencontré le même problème et même avec le jeu de variables système Java_HOME approprié, cela ne fonctionnait pas.

Finalement, j'ai navigué dans le dossier bin de mon installation de recherche élastique et j'ai exécuté:

service manager

Dans le gestionnaire, sous l'onglet Java, je configure ces options. 

-Delasticsearch
-Des.path.home=C:\elasticsearch-2.4.5
-Des.default.path.logs=C:\elasticsearch-2.4.5\logs
-Des.default.path.data=C:\elasticsearch-2.4.5\data
-Des.default.path.conf=C:\elasticsearch-2.4.5\config

Sauvegardé les modifications, puis exécuté

service start
0
CAOakley