首页 文章

无法启动弹性搜索服务

提问于
浏览
9

我试图在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”文件夹,里面有几个文件,“包括\ bin \ client \ jvm.dll”

如何使Elastic Search使用后来的Java版本,或者恢复jre1.8.0_60文件夹的内容?我似乎无法找到(安全下载)安装程序..

任何帮助非常感谢 .

3 回答

  • 15

    您的Java Runtime Environment很可能会自动更新 .

    这将打破Elastic Search,因为您有一个名为JAVA_HOME的环境变量,现在指向错误的位置 .

    首先,进入程序文件/ java并找到JRE的新文件夹 . 它可能是更晚的版本号 . 示例:代替jre1.8.0_73,可能是jre1.8.090或更高的数字加到最后 .

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

    然后,在对弹性搜索文件进行适当备份后,在启用admin的命令提示符中,导航到弹性搜索bin文件夹 .

    键入以下命令

    service remove
     service install
    

    然后,您可能想要进入services.msc并将服务从“手动启动”切换到“自动”或“自动延迟”

    有人可能认为在更新JAVA_HOME环境变量之后重新安装服务是不必要的,但是我的安装是必要的 .

  • 0

    已解决,再次安装服务..

    打开

    {路径到弹性搜索} \ BIN \

    在命令提示符下,

    并运行

    service install

    它不允许我跑

    服务删除,所以我现在如何列出两个弹性搜索服务,然而,这是一个测试服务器,所以这很好 .

  • 2

    对我来说,这是由更新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 并尝试启动该服务 .

相关问题