在我们的服务器上,我们使用多个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使用更新版本而不是旧版本?
转到用于启动elasticsearch的elasticsearch bash脚本。
如果您安装了RPM,它位于:
/usr/share/elasticsearch/bin/elasticsearch
然后搜索函数launch_service()在函数的第一行添加以下行:
JAVA=/usr/java/jdk1.8.0_25/bin/java
然后:
service elasticsearch restart
它将获取您在添加的行中设置的java版本。
更新sysconfig
是更好的方法,因此任何脚本都不会选择另一个JDK。在我的情况下,当我更新/etc/sysconfig/elasticsearch
中的elasticsearch配置时,它有效。这与https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html的建议非常相似