无法启动弹性搜索服务

Not able to start elastic search service

我试图在 Windows 2008 R2 服务器上启动 Elastic Search 服务,但无法启动。之前 运行 几个月都没有问题。

在服务中,我收到消息:

"Windows could not start the Elasticsearch 1.7.2 (ELASTIC_POC) on Local Computer. For more information, review the System Event Log. If this is a non_Microsoft service, contact the service vendor, and refer to service specific error code 1."

事件日志非常无用,显示以下错误:

"The Elasticsearch 1.7.2 (ELASTIC_POC) service entered the stopped state."

"The Elasticsearch 1.7.2 (ELASTIC_POC) service terminated with service-specific error Incorrect function.."

不过,我确实在 Elastic Search 自己的日志文件中获得了更多信息:

[2016-03-30 10:47:22] [info]  [ 3988] Running 'ELASTIC_POC' Service...
[2016-03-30 10:47:22] [info]  [ 3760] Starting service...
[2016-03-30 10:47:22] [error] [ 3760] Failed creating java C:\Progra~2\Java\jre1.8.0_60\bin\client\jvm.dll
[2016-03-30 10:47:22] [error] [ 3760] The system cannot find the path specified.
[2016-03-30 10:47:22] [error] [ 3760] ServiceStart returned 1
[2016-03-30 10:47:22] [error] [ 3760] The system cannot find the path specified.
[2016-03-30 10:47:22] [info]  [ 3988] Run service finished.
[2016-03-30 10:47:22] [info]  [ 3988] Commons Daemon procrun finished

检查 C:\Program Files (x86)\Java\jre1.8.0_60,它只包含一个名为 "lib" 的文件夹(它是空的)。有一个 "jre1.8.0_73" 文件夹,里面有几个文件,"including \bin\client\jvm.dll"

如何让 Elastic Search 使用更高版本的 Java,或者恢复 jre1.8.0_60 文件夹的内容?我似乎找不到(可以安全下载的)安装程序..

非常感谢任何帮助。

已解决,重新安装服务..

打开

{弹性搜索路径}\bin\

在命令提示符下,

和运行

服务安装

它不允许我运行

服务删除,所以我现在如何列出两个弹性搜索服务,但是,这是一个测试服务器,所以没关系。

很有可能您的 Java 运行时环境是 auto-updated。

这会破坏 Elastic Search,因为您有一个名为 JAVA_HOME 的环境变量现在指向了错误的位置。

首先,进入program files / java并找到JRE的新文件夹。它可能是更高版本号。示例:而不是 jre1.8.0_73,可能是 jre1.8.090 或一些更高的数字附加到最后。

相应地更新您的 JAVA_HOME 环境变量。

然后,对您的弹性搜索文件进行适当的备份后,在 admin-enabled 命令提示符下,导航到您的弹性搜索 bin 文件夹。

键入以下命令

 service remove
 service install

然后,您可能想要进入 services.msc 并将服务从 "manual start" 切换到 "automatic" 或 "automatic delayed"

有人可能会认为更新JAVA_HOME环境变量后重新安装服务是不必要的,但对于我的安装来说是必须的。

对我来说,这是由于更新 Java 后我的注册表出现问题引起的。似乎旧版本的服务安装程序硬编码了注册表项中的 java 路径,而它们应该取决于 JAVA_HOME 环境变量。

在您的注册表中找到以下项: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\elasticsearch-service-x64\Parameters\Java\Jvm。 如果它看起来像 jvm.dll 的硬编码路径,请将值更改为 %JAVA_HOME%\bin\server\jvm.dll 并尝试启动服务。

只要按照下面的步骤一步一步来,你的elasticsearch安装就可以了: 高级系统设置>>环境变量>>系统变量>>路径>>新建然后插入你最新的javajdk路径。像这样:C:\Program Files\Java\jdk-11.0.3\bin

对我来说,解决方案是创建目录 \AppData\Local\Temp\elasticsearch。显然 Windows 更新期间由于某种原因删除了此文件夹。