elasticsearch 启动时,指定jdk的版本

来源:互联网 发布:微信公众号seo 编辑:程序博客网 时间:2024/06/01 14:04

环境

服务器: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:$PATHif [ -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# 我添加的 startexport JAVA_HOME=/home/yutao/jdk1.8.0_121/export PATH=$JAVA_HOME/bin:$PATH# 我添加的 endsource "`dirname "$0"`"/elasticsearch-envparse_jvm_options() {  if [ -f "$1" ]; then    echo "`grep "^-" "$1" | tr '\n' ' '`"  fi}ES_JVM_OPTIONS="$ES_PATH_CONF"/jvm.optionsES_JAVA_OPTS="`parse_jvm_options "$ES_JVM_OPTIONS"` $ES_JAVA_OPTS"# 我添加的 startif [ -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 detachedif ! 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 0fiexit $?

这样就修改完毕;

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

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

[yutao@master01 elasticsearch-6.0.0]# bin/elasticsearchthe 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

原创粉丝点击