Elasticsearch работает со старой java версией - PullRequest
0 голосов
/ 01 мая 2020

Я недавно модернизировал версиюasticsearch в подчиненном узле эластичного поиска. Тем не менее, он выбирает неправильную версию java, хотя я установил переменную $JAVA_HOME.

[igwuser@hbase3 ~]$ sudo systemctl status elasticsearch
● elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-05-01 12:06:09 +08; 11min ago
     Docs: http://www.elastic.co
 Main PID: 15809 (java)
   CGroup: /system.slice/elasticsearch.service
           ├─15809 /opt/jdk1.8.0_151/bin/java -Xms15g -Xmx15g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=...
           └─15893 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller

May 01 12:06:09 hbase3.api.celcom.com.my systemd[1]: Started Elasticsearch.
May 01 12:06:09 hbase3.api.celcom.com.my elasticsearch[15809]: Java HotSpot(TM) 64-Bit Server VM warning: Cannot open file /var/log/elasticsearch/gc.log due to Permission denied
[igwuser@hbase3 ~]$ 
[igwuser@hbase3 ~]$ 
[igwuser@hbase3 ~]$ echo $JAVA_HOME
/usr/java/jdk1.8.0_251-amd64/
[igwuser@hbase3 ~]$ 

1 Ответ

0 голосов
/ 01 мая 2020

Как уже упоминалось в журналах, ваш сервисasticsearch использует JDK, присутствующий в пути /opt/jdk1.8.0_151/bin/java, в то время как ваш JAVA_HOME указывает на /usr/java/jdk1.8.0_251-amd64/.

Пожалуйста, убедитесь, что ваш сервисasticsearch использует правильный путь. Пожалуйста, смотрите эту официальную информацию о том, как ее установить.

Редактировать Поскольку установка Elasticsearch выполняется с использованием установщика, принадлежащего пользователюasticsearch, который использует связанный JDK упомянутая в моей предыдущей ссылке, Для того, чтобы он работал, вам нужно добавить новый JDK JAVA_HOME этому пользователю, но это не тривиально ,

Следовательно, можно предложить установить Elasticsearch из tarball по этой официальной ссылке , и когда вы сейчас запускаетеasticsearch от пользователя igwuser, для которого JAVA_HOME указывает на ваш последний JDK, ваш Elasticsearch также будет использовать это, и вы можете видеть это также в журналах запуска или в ваш процесс Служба эластичного поиска.

Например, в моем случае мой JAVA_HOME указывает на

/usr/lib/jvm/java-11-openjdk-amd64

И это то, что напечатано в журналах запуска Elasti c

JVM home [/ usr / lib / jvm / java -11-openjdk-amd64]

И это также можно проверить в процессе Elasti c с помощью ps aux | grep elastic

/ usr / lib / jvm / * 1 041 * -11-openjdk-amd64 / bin / java -Des.networkaddress.cache.ttl = 60 -Des.networkaddress.cache.negative.ttl = 10 -XX: + AlwaysPreTouch -Xss1m -D java .awt.headless = true -Dfile.encoding = UTF-8 -Djna.nosys = true -XX: -OmitStackTraceInFastThrow -Dio.netty.noUnsafe = true

...