无法启动elasticsearch服务

时间:2016-11-24 09:09:17

标签: elasticsearch

我正在尝试在Windows上启动elasticsearch。

ES 5.0.0, JDK 1.8.0.66, Windows 10

服务已正确安装但无法启动。

D:\Softwares\Elastic_Project\elasticsearch-5.0.0\bin>elasticsearch-service install
C:\Program Files\Java\jdk1.8.0_66
Installing service : "elasticsearch-service-x64"
Using JAVA_HOME (64-bit): "C:\Program Files\Java\jdk1.8.0_66"
The service 'elasticsearch-service-x64' has been installed.

D:\Softwares\Elastic_Project\elasticsearch-5.0.0\bin>elasticsearch-service start
C:\Program Files\Java\jdk1.8.0_66
Failed starting 'elasticsearch-service-x64' service

日志

[2016-11-24 14:21:19] [info] [11120] Commons Daemon procrun (1.0.15.0 64-bit) started
[2016-11-24 14:21:20] [info] [11120] Starting service 'elasticsearch-service-x64' ...
[2016-11-24 14:21:20] [info] [11572] Commons Daemon procrun (1.0.15.0 64-bit) started
[2016-11-24 14:21:20] [info] [11572] Running 'elasticsearch-service-x64' Service...
[2016-11-24 14:21:20] [info] [ 5916] Starting service...
[2016-11-24 14:21:21] [info] [ 5916] Service started in 1487 ms.
[2016-11-24 14:21:21] [info] [11572] Run service finished.
[2016-11-24 14:21:21] [info] [11572] Commons Daemon procrun finished
[2016-11-24 14:21:23] [error] [11120] Failed to start 'elasticsearch-service-x64' service
[2016-11-24 14:21:23] [error] [11120] The data area passed to a system call is too small.
[2016-11-24 14:21:23] [info] [11120] Start service finished.
[2016-11-24 14:21:23] [error] [11120] Commons Daemon procrun failed with exit value: 5 (Failed to start service)
[2016-11-24 14:21:23] [error] [11120] The data area passed to a system call is too small.

我在系统变量中添加了JAVA_HOME。系统日志

The Elasticsearch 5.0.0 (elasticsearch-service-x64) service terminated with the following service-specific error: 
Incorrect function.

任何帮助?

5 个答案:

答案 0 :(得分:4)

在具有Java 1.7然后升级到Oracle Java 1.8 SDK(jdk-8u45-windows-x64.exe)的系统上的Windows 7中,系统JAVA_HOME与elasticsearch管理器中的JAVA_HOME不同,并且不同版本的java是在路上。此外,由于系统未加载Java 8,elasticsearch-service安装失败。

将系统JAVA_HOME设置为正确的文件夹:

  1. 打开Windows文件资源管理器 + 电子
  2. 右键单击“我的电脑”
  3. 选择高级系统设置
  4. 选择环境变量
  5. 选择JAVA_HOME
  6. 编辑JAVA_HOME以将值更改为正确的根文件夹,例如C:\Progra~1\Java\jre1.8.0_45
  7. 确定两次
  8. 检查JAVA_HOME是否已设置且java是否正常工作:

    • java -version
    • echo %JAVA_HOME%

    如果失败则eleasticsearch-service install无法正常工作。 要修复DOS提示符:

    • set JAVA_HOME=C:\Progra~1\Java\jre1.8.0_45
    • path=C:\Program Files\Java\jdk1.8.0_45\bin;%path%

    检查Elasticsearch管理器中的JAVA_PATH值,并根据需要进行修复。从DOS提示符打开管理器程序:

    1. 从DOS提示符运行elasticsearch-service.bat manager
    2. 单击Java选项卡
    3. 点击%JAVA_HOME%\bin\server\jvm.dll
    4. 右侧的 ... 按钮
    5. 如果需要,请选择正确的JRE文件夹,或手动设置值,例如: C:\Program Files\Java\jdk1.8.0_45\jre\bin\server\jvm.dll
    6. 点击应用
    7. 选择常规标签
    8. 点击开始
    9. 单击确定以关闭Elasticsearch管理器
    10. 可能需要删除并重新添加elasticsearch服务:

      • elasticsearch-service.bat remove
      • elasticsearch-service.bat install

      使用config \ elasticsearch.yml中的设置在浏览器中打开elasticsearch以检查它是否正在运行:

      http://localhost:9200/

答案 1 :(得分:1)

我遇到了同样的问题。我可以通过查找例如日志文件找到问题的原因。 〜/ elasticsearch-5.2.1 /日志/ elasticsearch服务,x64.2017-02-20。它抱怨"创建java%JAVA_HOME%\ jre \ bin \ server \ jvm.dll" 失败。因此,我在环境变量中将JAVA_HOME重置为系统变量(非用户变量),并将其解决。

答案 2 :(得分:1)

您可以检查elasticserch / logs / elasticserch.log

  

我通过运行。\ elasticsearch-service manager 并在GUI的Java选项卡中将其更改为   -Djava.io.tmpdir=   至   -Djava.io.tmpdir=C:\Windows\Temp

https://github.com/elastic/windows-installers/issues/310

答案 3 :(得分:0)

我在使用Elasticsearch版本时也遇到了类似的错误。 Windows 10 64位上的7.7.0。 服务已成功安装,但无法以elasticsearch-service.bat start开头。 在控制台中启动elasticsearch没问题,但是Windows服务启动失败。 显示了相关的elasticsearch-service-x64日志:

[2020-05-20 16:36:30] [info]  [ 4988] Starting service...
[2020-05-20 16:36:33] [error] [10428] apxServiceControl(): dwState(4) != dwCurrentState(1); dwWin32ExitCode = 1067, dwWaitHint = 0, dwServiceSpecificExitCode = 0
[2020-05-20 16:36:33] [error] [10428] apxServiceControl(): returning FALSE

通过执行以下步骤解决了该问题:

  1. 删除弹性搜索服务(elasticsearch-service.bat remove);
  2. 安装最新的Java JDK-14.0.1(而不是在我的计算机上安装的11.0.7);
  3. 将系统变量中的JAVA_HOME的值更改为jdk-14.0.1的根目录;
  4. 重新启动计算机;
  5. CMD中java -version显示正确的Java版本(14.0.1)的验证;
  6. 安装elasticsearch服务(elasticsearch-service.bat install);
  7. 启动elasticsearch服务(elasticsearch-service.bat start)-成功启动。

注意:使用CMD作为管理员时,可能必须启动服务。

答案 4 :(得分:0)

此问题是由于错误设置环境变量或未设置环境变量引起的,文档Failed to start elasticsearch service 解释了我们如何设置JAVA_HOME系统变量以及在设置时如何出错。 Elastic search install as window service文档还解释了如何将弹性搜索安装为窗口服务以及如何将其设置为自动服务。