博客
关于我
Elasticsearch7.3.1启动指定JDK11
阅读量:788 次
发布时间:2023-01-24

本文共 2034 字,大约阅读时间需要 6 分钟。

针对Elasticsearch 7.3.1在虚拟机中运行时的Java版本要求进行了优化。以下是详细的解决方案:

1. 确认Elasticsearch版本要求

Elasticsearch 7.3.1确实要求使用Java 11及以上版本。在实际操作中,虽然Java 8仍然可用,但推荐遵循_Elasticsearch 官方文档中的推荐设置,以确保最佳性能和兼容性。

2. 安装Java Development Kit (JDK) 11

为了满足Elasticsearch的要求,首先需安装Java 11。以下是详细的操作步骤:

# 下载JDK 11wget https://download.java.net/java/GA/jdk11/13/GPL/openjdk-11.0.1_linux-x64_bin.tar.gz# 解压并安装tar -xzvf jdk-11.0.1_linux-x64_bin.tar.gz /usr/local/

注意:如果已经有其他JDK版本安装,建议清理旧版本,以避免版本冲突。

3. 配置JVM环境变量

为了确保Elasticsearch使用正确的JDK版本,需修改启动脚本文件(如elasticsearch-env.sh)中的相关参数:

#!/bin/bash# Define tmp directorysource "`dirname "$0"`"/elasticsearch-env# 检查是否是JDK 11if [ -x "/opt/jdk-11.0.1/bin/java" ]; then    JAVA="/opt/jdk-11.0.1/bin/java"else    JAVA=`which java`fi# Define JVM options to include G1GCES_JVM_OPTIONS="$ES_PATH_CONF/jvm.options"JVM_OPTIONS=`"$JAVA" -cp "$ES_CLASSPATH" org.elasticsearch.tools.launchers.JvmOptionsParser "$ES_JVM_OPTIONS"`# Update JVM options with tmp directoryES_JAVA_OPTS="${JVM_OPTIONS//${ES_TMPDIR}/$ES_TMPDIR}"# Determine if process should run in backgroundif ! 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 "$@" > /dev/null &fi

4. 配置垃圾回收器

为了优化Elasticsearch的性能,建议优化垃圾回收策略。修改jvm.options文件,添加以下参数:

# 在GC配置部分添加以下内容-XX:+UseG1GC# 去掉 -XX:+UseConcMarkSweepGC# 其他G1GC配置(如Heap size and initiation percent)

5. 启动脚本修改

在启动脚本中,需确保使用正确的JVM参数。示例中的脚本已经包含了对未来版本的适配配置,至关重要的一点是正确的垃圾回收器的选择,以避免性能问题。

6. 启动并验证

完成以上配置后,运行以下命令启动Elasticsearch:

# 使用修改后的脚本启动./bin/elasticsearch -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.io.tmpdir=/opt/elasticsearch/tmp

7. 确保日志正确显示

在遇到问题时,查阅logs/hs_err_pid<pid>.log中的错误日志,能够帮助快速定位问题根源。

通过以上步骤,正确配置了Elasticsearch 7.3.1的运行环境,消除了Java版本兼容性的警告,同时优化了垃圾回收策略,以提升应用程序的性能表现。

转载地址:http://seeyk.baihongyu.com/

你可能感兴趣的文章
"WARNING: Increasing RAM size to 1GB" and "Cannot set up guest memory 'xxx.ram': Invalid argument".
查看>>
#if 0 #elif 1 #else #endif 用法
查看>>
#include <gdiplus.h>出错
查看>>
$ajax({}).done 和 $ajax({}) success 区别
查看>>
'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)
查看>>
(反射+内省机制的运用)处理jdbc的结果集
查看>>
(反射+内省机制的运用)简单模拟spring IoC容器的操作
查看>>
(转)tomcat7.0 manager app和host manager web管理
查看>>
(转)使用公用表表达式的递归查询(SQLSERVER2005)
查看>>
(转)在CListView列表视图中添加右键菜单的方法
查看>>
.Net(C#)实现异步编程
查看>>
.Net中webBrowser控件JS交互
查看>>
.Net中webBrowser控件指定IE版本
查看>>
0-1背包问题:贪心算法与动态规划的比较
查看>>
02-docker系列-镜像分类以及操作(导入、导出、删除)
查看>>
02-Docker镜像分类及操作秘籍,轻松掌握导出、导入、删除
查看>>
03-docker容器的基本操作
查看>>
03-docker系列-docker容器的基本操作
查看>>
04-docker-commit构建自定义镜像
查看>>
04-docker系列-commit构建自定义镜像
查看>>