web-dev-qa-db-ja.com

Elasticsearchを1.4.1から1.4.4にアップグレードした後、サービスを開始できません

ELS 1.4.1を使用して、Windows 7バージョンx64にElasticsearchを正常にインストールしました。 Kibana 4 RTMにアップグレードした後、ELS 1.4.4が必要でした。

アップグレードを実行するには、次の手順を実行しました。

  1. ダウンロードしたELS 1.4.4
  2. ELS 1.4.1サービスを停止および削除しました
  3. 現在のインストールディレクトリの名前をelasticsearch_bakに変更しました
  4. 1.4.4 Zipをelasticsearchディレクトリに抽出しました
  5. /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-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.

コマンドプロンプトから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)
20

私はまったく同じ問題を抱えていましたが、ここに私がそれを修正した方法があります。

これが私のセットアップです

_Windows Server 2008 R2 Enterprise_-64ビットバージョンを使用しています。すべてがJava(JRE)バージョン_1.8.0_25_で正常に機能しました。ElasticSearchはWindowsサービスとしてインストールされました。

問題の直前に、Javaをバージョン_1.8.0_31_に更新し、マシンを再起動しました。

ここに私が行ったステップの履歴があります

まず、マシンを再起動した後、ElasticSearchサービスが停止していることに気付きました。起動を試みた後、再び停止しました。

問題のイベントログに表示される内容は次のとおりです。

Elasticsearch 1.4.1(elasticsearch-service-x64)サービスは、サービス固有のエラーIncorrect functionで終了しました。

_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)
_

問題を修正した理由

  1. ElasticSearchフォルダーからフォルダーbinconfiglibおよびpluginsを完全に削除しました。

    インデックスが配置されているため、dataディレクトリを削除しないようにしてください!

  2. _elasticsearch-1.4.4.Zip_から同じフォルダー(binconfigおよびlib)を解凍しました。
  3. コマンドプロンプトで管理者として_SC DELETE elasticsearch-service-x64_を実行しました(インストールされているサービスを削除するため)
  4. ラン_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. サービスを開始しました

そして、すべてが正しく動作し始めました

enter image description here

25
Nikolay Kostov

私は同じ問題を抱えています。 Javaの新しいバージョンへの更新後に表示されます。 「Java_HOME」変数の値を新しいJavaディレクトリに変更しましたが、問題は残ります。

コマンドプロンプトに移動して、ESディレクトリに移動し、次のコマンドを実行するよりも:

{ElasticSearch directory}\bin>service manager

このコマンドは、Elasticsearchプロパティウィンドウを開きます。( http://i.stack.imgur.com/QQEPG.png

Javaタブに移動して、 Java仮想マシン Javaの新しいバージョンへ。その後、ESサービスを実行します

{ElasticSearch directory}\bin>service start
18
Madjarov

この問題は、Elasticで配布されているservice.batApache Common Procrun に依存し、正しく解決されない環境変数%Java_HOME%を使用してJVMを設定するために発生します。

そこで、service.bat managerで表示されるGUIで「デフォルトJVM」を設定することで問題を修正しました。

コマンドライン経由で問題を修正する別の方法は

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

つまり.

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

JDKをjdk1.7.0_21からjdk1.8.0_77に更新し、Java_Homeを変更すると、正常に動作し始めました。

3
Vivek Bhadoria

Elasticsearchの別のバージョンがインストールされていました。古いバージョンを削除するだけでうまくいきました。

elasticsearch-2.0.0\bin> service remove

1

同じ問題にぶつかり、適切なJava_HOMEシステム変数が設定されていても機能しませんでした。

最終的に、弾性検索インストールのbinフォルダーに移動して実行しました。

service manager

マネージャー内のJavaタブで、これらのオプションを設定します

-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

変更を保存してから実行しました

service start
1
CAOakley

私のために働いたのは、binフォルダ内で「サービスマネージャ」を実行し、JVMをデフォルトに設定することでした。

1
avantprime