java - Apache flink 作业崩溃并出现异常 java.lang.IllegalAccessError: class org.apache.flink.util.NetUtils on start_cluster
问题描述
刚下载了 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 %
localhost:8081 的 UI 未启动。我在日志中看到以下内容:
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 -下载
有什么建议么?我有其他 java 版本,但我的 java home 指向最新的 ie 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 home 指向 java 11.0 使用
导出 JAVA_HOME=/usr/libexec/java_home -v 11.0
它奏效了
解决方案
使用设置我的 java home 指向 java 11.0
导出 JAVA_HOME=/usr/libexec/java_home -v 11.0
Flink 使用 1.8 或 11 运行,但不是更高版本
推荐阅读
- javascript - Vue-datetime 插件格式化时间和日期输出为可读值
- post - 关于 GET 和 POST 的误解
- javascript - 如何为多个表单编写一个handleSubmit函数来设置状态
- javascript - 如何在asp.net的外部js文件中获取会话值
- javascript - 如何将嵌套数组减少为单个对象数组
- unity3d - 如何从 Unity3d 相机中捕获帧并实时显示在另一个 rawImage 上?
- javascript - 浏览器正在阻止来自其自己域的框架
- java - 如何创造条件找到AccessibilityId?
- javascript - SyntaxError: 预期的表达式,得到 '<' - 第一行
- google-signin - GoogleSignIn.requestPermissions 返回无效帐户