解决 Flink 错误:java.lang.NoClassDefFoundError: org/apache/flink/configuration/RestOptions
这个异常通常表示缺少 Flink REST API 的配置,解决方法如下:
-
确保你的 Flink 版本支持 REST API。Flink 1.3 及之后的版本才支持 REST API。
-
确认你的 Flink 配置中已经启用了 REST API。在 flink-conf.yaml 文件中添加以下配置:
rest.port: 8081 rest.address: 0.0.0.0 -
确认你的 classpath 中包含了 flink-core.jar 和 flink-runtime-web.jar。如果你正在使用 Maven 或 Gradle 构建你的项目,可以添加以下依赖:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-core</artifactId> <version>${flink.version}</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-runtime-web</artifactId> <version>${flink.version}</version> </dependency> -
如果你正在使用 Flink 的 REST API 客户端库,请确保你的依赖中包含以下库:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <version>${flink.version}</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-rest_2.11</artifactId> <version>${flink.version}</version> </dependency> -
如果你正在使用 Flink 的 REST API 客户端库,并且你的代码中包含了以下代码:
Configuration configuration = new Configuration(); configuration.setString(RestOptions.ADDRESS, 'localhost'); configuration.setInteger(RestOptions.PORT, 8081);请确保你的依赖包含以下库:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-configuration</artifactId> <version>${flink.version}</version> </dependency>
如果你已经尝试了以上方法但仍然出现异常,请检查你的 Flink 配置和依赖是否正确,并确保你的代码中没有其他错误。
原文地址: https://www.cveoy.top/t/topic/lAku 著作权归作者所有。请勿转载和采集!