webentwicklung-frage-antwort-db.com.de

Der Dienst kann nach dem Upgrade von Elasticsearch von 1.4.1 auf 1.4.4 nicht gestartet werden

Ich habe Elasticsearch erfolgreich unter Windows 7 Version x64 mit ELS 1.4.1 installiert. Nach dem Upgrade auf Kibana 4 RTM war ELS 1.4.4 erforderlich.

Um das Upgrade durchzuführen, habe ich folgende Schritte ausgeführt:

  1. Heruntergeladene ELS 1.4.4
  2. Der Dienst ELS 1.4.1 wurde angehalten und entfernt
  3. Das aktuelle Installationsverzeichnis wurde in elasticsearch_bak umbenannt
  4. Extrahierte die 1.4.4-Zip in das Elasticsearch-Verzeichnis
  5. Vergleichen Sie die Dateien /config/elasticsearch.yml und config/logging.yml und übernehmen Sie die Änderungen (die unten die folgenden zusätzlichen Einstellungen enthalten).
# Helps Chrome work properly
http.cors.allow-Origin: "/.*/"
http.cors.enabled: true

Beim Starten des Dienstes stoppt der Dienst innerhalb weniger Sekunden. Die Protokolle lauten wie folgt:

Java-Version

(Beachten Sie, dass dies zu Entwicklungszwecken ist)

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)

Ereignisprotokoll

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.

Wenn ich elasticsearch über den Befehl Prompt starte, erhalte ich diesen Fehler:

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

Ich hatte genau das gleiche Problem und hier habe ich es behoben.

Hier ist mein Setup

Ich verwende Windows Server 2008 R2 Enterprise - 64-Bit-Version. Alles funktionierte gut mit der Java (JRE) -Version 1.8.0_25. Die elastische Suche wurde als Windows-Dienst installiert.

Genau vor dem Problem habe ich Java auf Version 1.8.0_31aktualisiert und die Maschine neu gestartet.

Hier ist die Geschichte der Schritte, die ich unternommen habe

Nach dem Neustart der Maschine habe ich festgestellt, dass der ElasticSearch-Dienst gestoppt wurde. Nach dem Startversuch stoppte es erneut.

Folgendes erhalte ich in meinem Ereignisprotokoll für die Ausgabe:

Der Dienst Elasticsearch 1.4.1 (elasticsearch-service-x64) wurde mit dienstspezifischen Fehlern beendet. Falsche Funktion.

Folgendes hatte ich in meinem 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

Dann Ich habe den Wert von Java_HOME Systemvariable in C:\Program Files\Java\jre1.8.0_31geändert.

enter image description here

Das Problem war dann:

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)

Was hat das Problem behoben?

  1. Ich habe die Ordner bin, config, lib und plugins vollständig aus dem ElasticSearch-Ordner gelöscht.

    Achten Sie darauf, dass Sie das data-Verzeichnis nicht löschen, da sich dort Ihre Indizes befinden!

  2. Entpackte dieselben Ordner (bin, config und lib) aus elasticsearch-1.4.4.Zip.
  3. Ran SC DELETE elasticsearch-service-x64 als Administrator in der Eingabeaufforderung (um den installierten Dienst zu löschen)
  4. Lief 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. Der Dienst wurde gestartet

Und dann hat alles richtig funktioniert .

enter image description here

24
Nikolay Kostov

Ich habe das gleiche Problem . Es erscheint nach dem Update auf eine neue Java-Version. Obwohl ich den Wert der Variablen "Java_HOME" in ein neues Java-Verzeichnis ändere, bleibt das Problem bestehen.

Dann gehe ich zur Eingabeaufforderung, navigiere zum ES-Verzeichnis und führe den folgenden Befehl aus:

{ElasticSearch directory}\bin>service manager

Dieser Befehl öffnet das Elasticsearch-Eigenschaftenfenster. ( http://i.stack.imgur.com/QQEPG.png )

Dann gehen Sie zur Registerkarte Java und ändern Sie den Pfad von Java virtuelle Maschine auf eine neue Version von Java. Danach einfach den ES-Dienst ausführen 

{ElasticSearch directory}\bin>service start
18
Madjarov

Das Problem wird durch service.bat verursacht, der mit Elastic verteilt wird und auf Apache Common Procrun basiert. Die JVM setzt die Umgebungsvariable %Java_HOME%, die nicht korrekt aufgelöst wird.

Daher habe ich das Problem behoben, indem "Default JVM" in der GUI eingestellt wurde, die mit service.bat manager angezeigt wird. 

Eine andere Möglichkeit, das Problem über die Befehlszeile zu beheben, ist

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

d.h.

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

Aktualisierte das JDK von jdk1.7.0_21 auf jdk1.8.0_77.Changed das Java_Home und es funktionierte gut.

3
Vivek Bhadoria

Ich hatte eine andere Version von elasticsearch installiert. Die alte Version einfach zu entfernen, funktionierte für mich.

elasticsearch-2.0.0\bin> Dienst entfernen

1

Was für mich funktionierte, war, "Service Manager" im Ordner "bin" auszuführen und die JVM auf "Standard" zu setzen.

1
avantprime

Ich stieß auf das gleiche Problem und selbst mit der richtigen Java_HOME-Systemvariablengruppe funktionierte es nicht.

Schließlich navigierte ich zum bin-Ordner meiner elastischen Suchinstallation und lief:

service manager

Im Manager unter der Registerkarte Java habe ich diese Optionen festgelegt 

-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

Die Änderungen wurden gespeichert und anschließend ausgeführt

service start
0
CAOakley