Сбой задания Apache flink с исключением java.lang.Ошибка незаконного доступа: организация класса.apache.flink.util.NetUtils в start_cluster

#java #java-8 #apache-flink #openjdk-11

Вопрос:

Только что скачал Flink 1.13.1 и хотел запустить небольшой локальный тестовый проект. Моя версия java:

[![введите описание изображения здесь][1]][1]

 pneelaka@MacBook-Pro Apache %
pneelaka@MacBook-Pro Apache % $FLINK_HOME/bin/start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host MacBook-Pro.
Starting taskexecutor daemon on host MacBook-Pro.
pneelaka@MacBook-Pro Apache %
 

Пользовательский интерфейс на локальном хосте:8081 не запускается. Я вижу следующее в своих журналах:

 java.lang.IllegalAccessError: class org.apache.flink.util.NetUtils (in unnamed module @0x76e041cf) cannot access class sun.net.util.IPAddressUtil (in module java.base) because module java.base does not export sun.net.util to unnamed module @0x76e041cf
    at org.apache.flink.util.NetUtils.unresolvedHostToNormalizedString(NetUtils.java:169) ~[flink-dist_2.12-1.13.1.jar:1.13.1]
    at org.apache.flink.util.NetUtils.unresolvedHostAndPortToNormalizedString(NetUtils.java:197) ~[flink-dist_2.12-1.13.1.jar:1.13.1]
    at org.apache.flink.runtime.rpc.akka.AkkaRpcServiceUtils.getRpcUrl(AkkaRpcServiceUtils.java:173) ~[flink-dist_2.12-1.13.1.jar:1.13.1]
    at org.apache.flink.runtime.rpc.akka.AkkaRpcServiceUtils.getRpcUrl(AkkaRpcServiceUtils.java:138) ~[flink-dist_2.12-1.13.
 

Это сильно похоже на проблему с версией Java ? Но разве flink не будет совместим с последней версией java? Придется ли мне вернуться к Java 11 или 8, как здесь написано: https://ci.apache.org/projects/flink/flink-docs-release-1.13//docs/try-flink/local_installation/#step-1-download

Есть какие-нибудь предложения? У меня есть другие версии java, но мой дом java указывает на последний i.e. 16:

 pneelaka@MacBook-Pro Apache % /usr/libexec/java_home -V
Matching Java Virtual Machines (5):
    16.0.1, x86_64: "OpenJDK 16.0.1"    /Users/pneelaka/Library/Java/JavaVirtualMachines/openjdk-16.0.1/Contents/Home
    16.0.1, x86_64: "Java SE 16.0.1"    /Library/Java/JavaVirtualMachines/jdk-16.0.1.jdk/Contents/Home
    14.0.2, x86_64: "OpenJDK 14.0.2"    /Users/pneelaka/Library/Java/JavaVirtualMachines/adopt-openjdk-14.0.2/Contents/Home
    11.0.11.1, x86_64:  "Amazon Corretto 11"    /Users/pneelaka/Library/Java/JavaVirtualMachines/corretto-11.0.11/Contents/Home
    1.8.0_292, x86_64:  "Amazon Corretto 8" /Users/pneelaka/Library/Java/JavaVirtualMachines/corretto-1.8.0_292/Contents/Home
 

ОБНОВЛЕНИЕ : Установите для моего дома java значение, указывающее на java 11.0 с помощью

экспортировать JAVA_HOME= /usr/libexec/java_home -v 11.0

и это сработало

Ответ №1:

Установите мой java home так, чтобы он указывал на java 11.0 с помощью

экспорт JAVA_HOME=/usr/libexec/java_home -v 11.0

Flink работает с 1.8 или 11, но не с более поздними

Ответ №2:

Хм, да — если вопрос в том, верна ли документация Flink, то я полагаю, что ответ «да». Со страницы, на которую вы ссылались в своем вопросе:

Чтобы иметь возможность запускать Flink, единственное требование-иметь работающую установку Java 8 или 11