解决Elasticsearch因jdk版本问题启动失败的问题

Elasticsearch2.4版本,在Linux机器上启动报如下错误:

Exception in thread "main" java.lang.RuntimeException: Java version: Oracle Corporation 1.7.0_45 [OpenJDK 64-Bit Server VM 24.45-b08] suffers from critical bug https://bugs.openjdk.java.net/browse/JDK-8024830 which can cause data corruption.
Please upgrade the JVM, see http://www.elastic.co/guide/en/elasticsearch/reference/current/_installation.html for current recommendations.
If you absolutely cannot upgrade, please add -XX:-UseSuperWord to the JAVA_OPTS environment variable.
Upgrading is preferred, this workaround will result in degraded performance.
        at org.elasticsearch.bootstrap.JVMCheck.check(JVMCheck.java:123)
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:284)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:45)
Refer to the log for complete error details.

看网上有说Linux自带的OpenJDK和新装的JDK可能会有冲突(跟Elasticsearch无关的文章),不知道和这个有没有没关系。

我的机器java -version如下,这算冲突吗?我也不清楚。

java version "1.7.0_45"
OpenJDK Runtime Environment (rhel-2.4.3.3.el6-x86_64 u45-b15)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)

本来打算试一试删掉OpenJDK安装JDK7的,当时上官网下载Linux版JDK7时发现竟然要下载三个多小时,下载这个不知道为什么这么慢。

等JDK7时,我看报错信息里please add -XX:-UseSuperWord to the JAVA_OPTS environment variable让我配置环境变量,那我配一下也无妨。

在终端上输入

export JAVA_OPTS=$JAVA_OPTS-XX:-UseSuperWord

然后启动Elasticsearch,成了。

上边那句只在当前用户下生效,关闭终端或者退出用户后,即使再次登录,环境变量也失效了。机器不是我的,我没有root权限改环境变量。

一不做二不休,我在Elasticsearch的启动文件/bin/elasticsearch里加上这行,这样每次启动就没问题了。

截图如下

解决ElasticSearch找不到JDK问题

Could not find any executable java binary.Please install java in your PATH

背景:

本地启动ElasticSearch服务提示找不到JDK或JRE,提示Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME.

但是本地已经安装了jdk,并且已经配置了环境变量,但是为什么还是有问题,答案是不要把环境变量设置到bin目录。

解决方案:

设置环境变量JAVA_HOME,但是注意不要设置到\bin这个级别的目录

  • JAVA_HOME:C:\Program Files (x86)\Java\jdk1.8.0_91\bin (错误)
  • JAVA_HOME:C:\Program Files (x86)\Java\jdk1.8.0_91 (正确)

原因:

启动文件中的elasticsearch文件中,会自动去找JAVA_HOME这个变量下的bin,如下图,如果设置了JAVA_HOME这个变量到bin路径,就会有重复,导致ElasticSearch启动找不到jdk变量。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • java操作elasticsearch的案例解析

    这篇文章主要介绍了java操作elasticsearch的案例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 到目前为止,我们一直都是使用RESTful风格的 API操作elasticsearch服务,但是通过我们之前的学习知道,elasticsearch提供了很多语言的客户端用于操作elasticsearch服务,例如:java.python..net.JavaScript.PHP等.而我们此次就学习如何使用java语言来操作elasti

  • ElasticSearch的完整安装教程

    ElasticSearch安装 下载ElasticSearch 官网地址: https://www.elastic.co/products/elasticsearch 本地下载:https://www.jb51.net/codes/579429.html 上传到ElasticSearch 可以使用第三方工具filezilla 解压elasticsearch-6.4.0.tar.gztar -zxvf elasticsearch-6.4.0.tar.gz [root@localhost elast

  • elasticsearch head的安装及使用过程解析

    ealsticsearch只是后端提供各种api,那么怎么直观的使用它呢?elasticsearch-head将是一款专门针对于elasticsearch的客户端工具 elasticsearch-head配置包,下载地址:https://github.com/mobz/elasticsearch-head elasticsearch-head是一个基于node.js的前端工程,启动elasticsearch-head的步骤如下(这里针对的是elasticsearch 5.x以上的版本): 1.进

  • 基于Elasticsearch5.4的常见问题总结

    最近项目中用到了Elasticsearch5.4(ES)是比较新的一个版本,使用的过程中出现了很多的问题,很是头疼,但是问题最终还是解决掉了. 问题一:ESClient获取慢,并且不能获取Client:failed to create a child event loop 由于业务的需要没上传一批文件都要加一次ES索引,每加一次索引都要获取连接然后操作,尤其是大批量的时候,获取的次数显然非常多,而且出现这个问题的主要原因在于我们在循环频繁的操作ES,比如一批文件100个,我们就要获取100次,为

  • 解决Elasticsearch因jdk版本问题启动失败的问题

    Elasticsearch2.4版本,在Linux机器上启动报如下错误: Exception in thread "main" java.lang.RuntimeException: Java version: Oracle Corporation 1.7.0_45 [OpenJDK 64-Bit Server VM 24.45-b08] suffers from critical bug https://bugs.openjdk.java.net/browse/JDK-8024830

  • 解决因缺少Log4j依赖导致应用启动失败的问题

    前言 最近公司在做版本升级,所有对aaa(指代某个内部依赖)有依赖的应用需要排除掉.从这点看,几乎不会有什么问题,因为仅仅是排除一些maven依赖而已嘛.但是,一位同学在排除依赖的时候,仅仅是把aaa排除了,而没有在测试环境进行测试,在线上发布的时候,日志报dubbo服务注册失败(抛异常和dubbo admin没有看到注册的服务),导致应用启动失败(回滚后正常),影响正常业务5分钟. 事后排查这个问题的时候发现,有两个原因导致了应用启动失败: 去除aaa依赖后,导致应用有多个slf4j的依赖 去

  • phpStudy访问速度慢和启动失败的解决办法

    下面给大家介绍phpstudy访问速度慢的解决办法. 1.修改mysql数据库链接地址为ip地址127.0.0.1. 2.使用最新版本,这个坑了我好久时间. 下面一段内容是关于phpstudy启动失败的解决办法. php5.3.5.4和apache都是用vc9编译,电脑必须安装vc9运行库才能运行. php5.5.5.6是vc11编译,如用php5.5.5.6必须安装vc11运行库. vc9和vc11运行库下载:http://pan.baidu.com/s/1gd0y1Qb php5.5以上才有

  • docker.service启动失败:Unit not found的原因及解决办法

    背景 因为最近一直在折腾Kubernetes集群版本升级.Docker版本升级,所以不停的把测试环境安装.还原.升级.降级,简直乱的不行.终于,在测试Docker版本升级后,启动Docker时,遇到了docker.service: Unit not found.问题虽然不大,但是却折磨了我几个小时,所以在此mark一下. 操作系统:Red Hat Enterprise Linux 7 原因1:docker.socket 最初在启动docker时遇到问题,是因为docker.socket引起的,虽

  • McAfee 1920错误 启动失败的解决办法

    服务器时间不正确导致mcafee启动服务出现错误1920 昨天帮一朋友配置服务器,安装mcafee杀毒软件到最后一步时却提示1920错误,这是使用mcafee以来第一次遇到这种错误,在网上搜索解决方案,似乎无效,意外的发现服务器时间不正确,正确的日期为2007年,而服务器上的日期为2000年,因为使用mcafee8.5i 首次安装的病毒库日期是2006-11,所以启动服务时才会提示错误1920,更改成正确的时间,然后再重新安装一次MCAFEE,就正常启动了 我不知道网上那么多人遇到这种错误是什么

  • MySQL下常见的启动失败与备份失败问题的解决教程

    启动失败 重启服务器后-->重启应用服务(Confluence)-->报错,数据库连接失败(mysql设置了开机自启动)-->查看mysql数据库状态: [root@fisheye ~]# ps -ef | grep mysql root 25555 21974 0 11:28 pts/0 00:00:00 grep mysql 启动mysql服务器 [root@fisheye data]# service mysql start MySQL server PID file could

  • mysql5.7.18安装时mysql服务启动失败的解决方法

    MySQL 是一个非常强大的关系型数据库.但有些初学者在安装配置的时候,遇到种种的困难,在此就不说安装过程了,说一下配置过程.在官网下载的mysql时候,有msi格式和zip格式.Msi直接运行安装即可,zip则解压在自己喜欢的目录地址即可.在安装这两种的时候,都需要配置才能用.以下介绍主要是msi格式默认的地址:C:\Program Files\ mysql-5.7.18-win32. 一.在安装或者解压后,需要配置环境变量,过程如下:我的电脑->属性->高级系统设置->高级->

  • 解决因jdk版本引起的TypeNotPresentExceptionProxy异常

    TypeNotPresentExceptionProxy异常的解决记录 网上的这个问题处理情况比较多,我来简单描述一下我遇到的问题: 同样的环境版本,同事的可以启动,我的就报TypeNotPresentExceptionProxy异常. 如下图: 异常日志 网络方案 我查看了很多博客,文章.但是发现问题都没有解决. Spring Boot2深入分析解决java.lang.ArrayStoreException异常 SpringBoot使用自动配置xxxAutoConfiguration 使用ID

  • Spring Boot 2.6.x整合Swagger启动失败报错问题的完美解决办法

    目录 问题 原因 解决方案 方案一(治标) 方案二(治本) 总结 问题 Spring Boot 2.6.x版本引入依赖 springfox-boot-starter (Swagger 3.0) 后,启动容器会报错: Failed to start bean ‘ documentationPluginsBootstrapper ‘ ; nested exception… 原因 Springfox 假设 Spring MVC 的路径匹配策略是 ant-path-matcher,而 Spring Bo

  • Docker Desktop启动失败的解决(Docker failed to initialize Docker Desktop is shutting down)

    目录 问题记录: 解决方法: 问题记录: 有一段时间没有使用docker了,突然要用到结果发现docker desktop都打不开了,会弹出如下错误: 一开始考虑的是会不会是docker版本太老的问题,使用docker version查了一下版本,发现cmd中docker指令还可以输出,但是docker version显示版本信息的同时也会有连接失败的错误信息存在.(而且查了一下版本并不落后,看来还是要解决初始化问题) docker version错误信息: error during conne

随机推荐