今天下午在搭建elasticsearch服务的时候出了一些问题。
本来,搭建elasticsearch过程并不复杂,下载官网源码,解压,运行启动文件,就行了。当然,得提前准备好本机环境,如jdk之类的,还有调整一些参数。就在我一切都完成,启动elasticsearch时,糟糕的事情出现了,它爆出了一个警告而且并没有启动成功。照理说警告应该是不影响启动的,但是最后却没有启动,当然,这时我顾不上去管这个问题,让我们看看那个警告:
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
是一个jdk相关的警告,说的是UseConcMarkSweepGC将在jdk9及以上版本被移除。so?
网上一搜都是说jdk版本太高,不兼容,用jdk8就好。可我用的就是jdk8呀。。。
抱着解决掉这个警告就能成功启动的信念,我不断更换jdk版本,但是这个警告就是挥之不去。
直到我偶然在网上看到有人说elasticsearch不能用root账户启动。我转念一想我之前好像都是root账户启动的,于是我赶紧用普通账户启动试试。抱着紧张激动的心情,我按下了回车。然后:
Exception in thread "main" java.nio.file.AccessDeniedException: /home/wzw/elk/elasticsearch-7.3.1/config/jvm.options
at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
为了排版,我截掉了后半部分。我想起了我最开始也是用的普通账号启动,但是就是有这个访问权限的问题,当时下意识就是切换到root账户,但是现在转念一想,既然不能切换root运行,那还有一种办法,改变文件访问权限,为了方便,我一次性修改了elasticsearch文件夹下面全部文件的访问权限,然后再以普通用户身份去启动elasticsearch。回车之后,还是马上弹出了熟悉的OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
但是紧接着:
果然警告不影响启动,但是之前为什么没有这些内容呢?原来之前启动的时候加了-d参数,所以程序在后台运行,输出不会打印出来。这样看来这个警告不管是什么版本的jdk都会有,感觉就是个提醒,让用户自己评估风险。合着我一下午都在和空气斗智斗勇。。。
本以为这样就结束了,但是启动时报了个错,是个配置问题,相关内容在https://blog.csdn.net/lidew521/article/details/88091539
这篇文章中有写,出现问题可以去看看,加上配置就解决了。