1.原因
出現如題所示的錯誤時,是因爲Elasticsearch對JDK版本有要求。而我們可能習慣性的安裝的是目前較爲主流的1.7或1.8版本的JDK。所以與Elasticsearch的要求版本無法對應。先上一張對應圖:
我目前使用的是Elasticsearch的7.7版本,所以對應需要用到OpenJDK11.
2.解決方法
①安裝JDK11
wget https://download.java.net/java/GA/jdk11/13/GPL/openjdk-11.0.1_linux-x64_bin.tar.gz
下載完畢之後使用tar -zvxf openjdk-11.0.1_linux-x64_bin.tar.gz 解壓出來
②使用vim es/bin/elasticsearch (路徑用自己的) 添加如下配置:
#配置自己的jdk11
export JAVA_HOME=/opt/jdk-11.0.1
export PATH=$JAVA_HOME/bin:$PATH
#添加jdk判斷
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="/opt/jdk-11.0.1/bin/java"
else
JAVA=`which java`
fi
③再使用es/bin/elasticsearch -d 後臺啓動es。通過curl 'http://127.0.0.1:9200/?pretty'查看啓動情況:
出現如上信息,就說明es已經正常啓動了!
3.補充
啓動es時,可能出現
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
警告信息,這是提醒你 cms 垃圾收集器在 jdk9 就開始被標註爲 @deprecated
解決方式:將將 : -XX:+UseConcMarkSweepGC 改爲:-XX:+UseG1GC
參考鏈接: