Конфигурирование JAVA РАЗМЕЩАЕТ для Hadoop 3.0.3 при наличии нескольких версий Java

Я работаю над установкой Hadoop, сделанной кем-то еще.

Ubuntu 18.04.1 LTS
Hadoop version 3.0.3
Java open jdk 11 (auto mode) and 8 (manual mode)

В настоящее время Hadoop работает с Java 11, но я хочу настроить Hadoop для выполнения с Java 8, потому что Hive не работает с Java 11.

Следующее является конфигурацией Java в моей виртуальной машине.

hadoop@hadoop-VirtualBox:~$ whereis java
java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz

hadoop@hadoop-VirtualBox:~$ update-alternatives --list java
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

hadoop@hadoop-VirtualBox:~$ java -version
openjdk version "10.0.2" 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.1)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.1, mixed mode)

hadoop@hadoop-VirtualBox:~$ sudo update-alternatives --config java

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1101      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1101      manual mode
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode


hadoop@hadoop-VirtualBox:~$ ls -lh /usr/lib/jvm/
total 8.0K
lrwxrwxrwx 1 root root   25 Apr  8 14:16 default-java -> java-1.11.0-openjdk-amd64
lrwxrwxrwx 1 root root   21 Apr 21 14:41 java-1.11.0-openjdk-amd64 -> java-11-openjdk-amd64
drwxr-xr-x 9 root root 4.0K Aug 23 12:28 java-11-openjdk-amd64
lrwxrwxrwx 1 root root   20 Apr 26 16:59 java-1.8.0-openjdk-amd64 -> java-8-openjdk-amd64
drwxr-xr-x 7 root root 4.0K Aug 17 08:24 java-8-openjdk-amd64

Я смотрел на этот поток для конфигурирования Java однако в .bashrc или/etc/environment файле, там не запись на JAVA_HOME. Единственное место JAVA_HOME указан, находится в/usr/local/hadoop/etc/hadoop/hadoop-env.sh файл. В файле JAVA_HOME указан следующим образом:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

С вышеупомянутой конфигурацией Hadoop работает без любой проблемы. Я пытался изменить JAVA_HOME в hadoop-env.sh файле к/usr/lib/jvm/java-8-openjdk-amd64 и пытался выполнить Hadoop. Но это дает ошибку

Unrecognized option: --add-modules Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.

Я пытался изменить приоритет версии Java с помощью sudo, альтернативы обновления - конфигурируют Java наряду с hadoop-env.sh изменением, но это все еще дает ту же ошибку.

Для изменения версии Java, я должен добавить путь к .bashrc и/etc/environment также? Я хотел бы знать то, что изменило потребности, которые будут сделаны.

0
задан 27 August 2018 в 16:28

1 ответ

Удостоверьтесь, что у Вас есть проверенное резервное копирование сначала.

Много hadoop экосистемы только поддерживает Java 8. Scala, Spark, и т.д. Однако при установке Hadoop, JAVA_HOME должен быть установкой сначала.

Необходимо будет удалить Java 11 прежде, чем установить Java 8. Для системы Hadoop будет лучше получить сообщение об ошибке, чтобы помочь определить, где проблема, затем чтобы иметь другой JVMs, работающий (Java 11 и Java 8).Примечание: Я предполагаю, что Hadoop работает автоматически при системном запуске, таким образом, необходимо будет определенно удалить Java 11.

Затем необходимо будет пройти каждый из файлов конфигураций Hadoop для проверения этого дважды, JAVA_HOME не был настроен. Для Ubuntu это обычно /usr/local/hadoop/etc/hadoop но может быть что-либо, что хотел предыдущий администратор ($HADOOP_HOME/etc/hadoop). grep затем цельного непосредственно ускорит это. Это идет для каждого дополнительного продукта, такого как Hive, HBase, и т.д. Можно быть удачливыми в этом только hadoop-env.sh, имеет настроенный JAVA_HOME.

Также проверьте сценарии запуска init в/etc/init.d

После перезагрузки Hadoop рассмотрите файлы журнала. Я также завершил бы работу и перезапустил бы каждый сервис по одному и рассмотрел бы вывод.

0
ответ дан 28 October 2019 в 02:01

Другие вопросы по тегам:

Похожие вопросы: