无法启动弹性搜索服务
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 更新期间由于某种原因删除了此文件夹。
我试图在 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 更新期间由于某种原因删除了此文件夹。