elasticsearch 启动时,指定jdk的版本

环境

服务器:centos6
操作系统:win7
工具:CRT
elasticsearch:6.0.0

场景

拿我公司举例,我公司目前都是使用jdk1.7,并且线上已经有很多程序在跑啦!所以通过修改环境的方式,肯定是不行,而启动elasticsearch.6.0,有需要jdk8

修改启动脚本

这种情况下,我们就需要在启动elasticsearch时,就需要指定jdk版本。
即修改elasticsearch的启动脚本(elasticsearch_HOME/bin/elasticsearch

[root@master01 elasticsearch-6.0.0]# vim bin/elasticsearch
# 添加以下代码
export JAVA_HOME=/home/yutao/jdk1.8.0_121/
export PATH=$JAVA_HOME/bin:$PATH

if [ -x "$JAVA_HOME/bin/java" ]; then
        JAVA="/home/yutao/jdk1.8.0_121/bin/java"
else
        JAVA=`which java`
fi

这里我也给我完整的文件:

#!/bin/bash

# CONTROLLING STARTUP:
#
# This script relies on a few environment variables to determine startup
# behavior, those variables are:
#
#   ES_PATH_CONF -- Path to config directory
#   ES_JAVA_OPTS -- External Java Opts on top of the defaults set
#
# Optionally, exact memory values can be set using the `ES_JAVA_OPTS`. Note that
# the Xms and Xmx lines in the JVM options file must be commented out. Example
# values are "512m", and "10g".
#
#   ES_JAVA_OPTS="-Xms8g -Xmx8g" ./bin/elasticsearch
# 我添加的 start
export JAVA_HOME=/home/yutao/jdk1.8.0_121/
export PATH=$JAVA_HOME/bin:$PATH
# 我添加的 end
source "`dirname "$0"`"/elasticsearch-env

parse_jvm_options() {
  if [ -f "$1" ]; then
    echo "`grep "^-" "$1" | tr '\n' ' '`"
  fi
}

ES_JVM_OPTIONS="$ES_PATH_CONF"/jvm.options

ES_JAVA_OPTS="`parse_jvm_options "$ES_JVM_OPTIONS"` $ES_JAVA_OPTS"

# 我添加的 start
if [ -x "$JAVA_HOME/bin/java" ]; then
        JAVA="/home/yutao/jdk1.8.0_121/bin/java"
else
        JAVA=`which java`
fi
# 我添加的 end

# manual parsing to find out, if process should be detached
if ! echo $* | grep -E '(^-d |-d$| -d |--daemonize$|--daemonize )' > /dev/null; then
  exec \
    "$JAVA" \
    $ES_JAVA_OPTS \
    -Des.path.home="$ES_HOME" \
    -Des.path.conf="$ES_PATH_CONF" \
    -cp "$ES_CLASSPATH" \
    org.elasticsearch.bootstrap.Elasticsearch \
    "$@"
else
  exec \
    "$JAVA" \
    $ES_JAVA_OPTS \
    -Des.path.home="$ES_HOME" \
    -Des.path.conf="$ES_PATH_CONF" \
    -cp "$ES_CLASSPATH" \
    org.elasticsearch.bootstrap.Elasticsearch \
    "$@" \
    <&- &
  retval=$?
  pid=$!
  [ $retval -eq 0 ] || exit $retval
  if [ ! -z "$ES_STARTUP_SLEEP_TIME" ]; then
    sleep $ES_STARTUP_SLEEP_TIME
  fi
  if ! ps -p $pid > /dev/null ; then
    exit 1
  fi
  exit 0
fi

exit $?

这样就修改完毕;

启动时,不要用root用户,被官方禁止啦!会报错的!

还有我发现,有时修改明明对了,启动时,还是报:

[yutao@master01 elasticsearch-6.0.0]# bin/elasticsearch
the minimum required Java version is 8; your Java version from [/usr/java/jdk1.7.0_51/jre] does not meet this requirement

有时又正常啦,不明白!

参考地址:

http://blog.csdn.net/liubenlong007/article/details/54708107

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
对于 JDK 17 来指定 Elasticsearch,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了 JDK 17。你可以从官方网站(https://www.oracle.com/java/technologies/downloads/)或者其他可靠的来源下载并安装 JDK 17。 2. 接下来,你可以下载 Elasticsearch。你可以从 Elasticsearch 官方网站(https://www.elastic.co/downloads/elasticsearch)下载最新版本Elasticsearch。 3. 解压下载的 Elasticsearch 文件。你可以将其解压到任意位置,例如 `/opt/elasticsearch`。 4. 打开终端(命令行界面),进入到 Elasticsearch 的安装目录。例如,如果你将 Elasticsearch 解压到 `/opt/elasticsearch`,则可以使用以下命令进入该目录: ``` cd /opt/elasticsearch ``` 5. 编辑 Elasticsearch 的配置文件 `config/elasticsearch.yml`。你可以使用任意文本编辑器打开该文件,例如使用 `vim` 命令: ``` vim config/elasticsearch.yml ``` 6. 在配置文件中,找到并修改以下配置项: ``` # 设置 JDK 路径为 JDK 17 的安装路径 path.java: /path/to/jdk-17 ``` 将 `/path/to/jdk-17` 替换为 JDK 17 的实际安装路径。 7. 保存并关闭配置文件。 8. 现在,你可以启动 Elasticsearch。在终端中运行以下命令: ``` ./bin/elasticsearch ``` Elasticsearch 将会启动,并开始监听默认端口 9200。 这样,你就成功地将 JDK 17 指定Elasticsearch 了。记得根据你的实际环境和需求进行相应的配置。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山鬼谣me

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值