这个异常通常表示缺少 Flink REST API 的配置,解决方法如下:

  1. 确保你的 Flink 版本支持 REST API。Flink 1.3 及之后的版本才支持 REST API。

  2. 确认你的 Flink 配置中已经启用了 REST API。在 flink-conf.yaml 文件中添加以下配置:

    rest.port: 8081
    rest.address: 0.0.0.0
    
  3. 确认你的 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>
    
  4. 如果你正在使用 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>
    
  5. 如果你正在使用 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 配置和依赖是否正确,并确保你的代码中没有其他错误。

解决 Flink 错误:java.lang.NoClassDefFoundError: org/apache/flink/configuration/RestOptions

原文地址: https://www.cveoy.top/t/topic/lAku 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录