【问题标题】:How to start Elasticsearch service with multiple JAVA JDKs如何使用多个 JAVA JDK 启动 Elasticsearch 服务
【发布时间】:2015-08-16 07:45:02
【问题描述】:

在我们的服务器上,我们使用了多个 Java JDK。我无法更改这一点,因为我们有旧 Java 版本的依赖项。 因此,我无法启动当前的 elasticsearch 版本(1.5.2),因为它需要 JDK > 1.7.0_55,尽管我们安装了其他版本,包括 1.7.0_79。 旧版本的可执行文件存储在 /bin 下,而新版本的可执行文件安装到 /usr/jdk1.x.x_xx/bin。 我在 /etc/elasticsearch/elasticsearch.yml 中没有找到任何选项来设置 java 可执行文件的路径。 我还尝试将环境变量 $PATH 和 $JAVA_HOME 设置为较新的版本,但没有任何运气。 有没有办法强制 elasticsearch 使用新版本而不是旧版本?

【问题讨论】:

  • 不幸的是,这个解决方案似乎适用于旧版本的弹性搜索。看起来较新的版本使用 $JAVA_HOME 变量。但我发现,which java 命令引用了 /bin/java。我希望这是解决方案...
  • 您是使用 RPM 安装还是只是解压缩 tar?

标签: java linux service elasticsearch daemon


【解决方案1】:

转到用于启动 elasticsearch 的 elasticsearch bash 脚本。

如果您安装了 RPM,它位于:

/usr/share/elasticsearch/bin/elasticsearch

然后搜索函数launch_service() 在函数的第一行添加以下行:

JAVA=/usr/java/jdk1.8.0_25/bin/java

然后:

service elasticsearch restart

它将获取您在添加的行中设置的任何 java 版本。

【讨论】:

  • 似乎是唯一的方法。感谢您的支持
【解决方案2】:

更新sysconfig 是更好的方法,因此任何脚本都不会选择另一个 JDK。 在我的情况下,当我更新 /etc/sysconfig/elasticsearch 中的 elasticsearch 配置时它起作用了 这与https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html 中的建议差不多

【讨论】:

    猜你喜欢
    • 2015-02-18
    • 2015-01-06
    • 2017-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 2021-05-03
    相关资源
    最近更新 更多